- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试构建一个过程来比较两个列表(这是一个更大列表的元素)并返回它们的相似程度。该过程将通过对两个列表中同一索引中的元素之间的差异求和来完成此操作。这是通过比较两个列表的 car
递归完成的,再次调用自身,运行结果是比较,新列表是两个列表的 cdr
,最后当两个列表都为空时返回结果。但是,当我对此进行测试时,即使我有一个 if
语句在列表为空时返回结果,也会返回以下错误:
Cannot read property 'car' of undefined [ ]
我相当确定我的 let
语法是正确的,因为它已在先前的问题中修复,并且唯一一次在其他过程中使用了 car
used 单独运行时没有任何错误。发生了什么,如何解决?
代码:
(define (get-list name arr)
(if (eq? name (car (car arr)))
(cdr (car arr))
(get-list name (cdr arr))))
(define (similarity-arrays name1 name2 arrs result)
(let ((arr1 (get-list name1 arrs))
(arr2 (get-list name2 arrs)))
(if (= (length arr1)(length arr2))
(let ((x1 (car arr1))
(x2 (car arr2)))
(if (null? arr1))
result
(similarity-arrays
(cdr arr1)
(cdr arr2)
(+ result (- x1 x2)))))
#f))
(define dust
(list (list 'akko 11 3 7 5 4 1 9 8 10 6 2)
(list 'Jodast 10 7 4 6 5 1 11 9 8 3 2)
(similarity-arrays 'Jodast 'Akko dust 0)
最佳答案
您的代码存在多个问题。例如:
(if (null? arr1))
表达式是 if
没有结果或选择,因为最右边的 )
一定不能在那里关闭,只能在结果和替代之后。similarity-arrays
不正确,您传递的参数类型错误,参数数量也不正确。get-list
中和 similarity-arrays
有时您假设参数是元素,而其他时候它们是列表dust
的定义中.使用良好的 IDE 并正确缩进代码以显示缺少括号的位置length
,如果通过询问它是 null?
来确定我们是否已经到达列表末尾的方法.equal?
用于测试相等性,而不是 eq?
.关于syntax-error - 为什么返回错误 'Cannot read property ' car' of undefined [ ]' 即使我有空列表的回退?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56352701/
(抱歉新手问题。)在 Ruby 中,循环之间的区别是什么: @cars.each do |car| 和 for car in @cars do ? 效率上有区别吗,或者为什么我们需要两种(或更多)方式
CREATE DATABASE movies_200186807; USE movies_200186807; CREATE TABLE movies_200186807 ( movie_name
在一本书中找到了第二种初始化对象的方法。现在很困惑。 最佳答案 这声明了一个变量: Car myCar; 该变量的类型为 Car,名为 myCar。但是,它还没有被初始化为任何东西。它是 Car 对象
我正在研究 Pandas 并研究汽车(一个 csv 文件)。我运行了以下命令: 1) cars.iloc[[3, 0]] Out[2]: cars_per_cap country dri
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Do the parentheses after the type name make a differen
除了明确的清晰度,我们为什么要坚持:car.getSpeed()和 car.setSpeed(55)当这也可以使用时:car.speed()和 car.speed(55) 我知道 get() 和 se
var car = function(){ this.color = 'blue'; } car.color1 = 'white'; car.prototype.color2 = 'red'; var
给定汽车列表 (List cars),我可以: Observable.just(cars); //returns an Observable that emits one List Observabl
我正在尝试将此 XML 反序列化为 Parts 对象: gearbox 1990
假设我有标题中描述的结构: Map> mapNeighborhood 包含分别由地址和车牌索引的邻域中的所有汽车。我想选择所有红色汽车将它们重新涂成黑色。为完成该任务,我尝试使用 Java 8 将两个
我在计划中的功能是尝试获取省的详细信息: (define (getProvincesHelper sales provincesList) (if (null? sales) prov
我相信我已经在程序中发现它是这个函数,但是在到达find_best_candidates函数的第一行之前似乎失败了: (define (count-the-score candList voterLi
我正在尝试创建利用 D-Bus 的程序。我研究了 Qt 提供的示例,大致相同。在其中一个名为“D-Bus 遥控汽车示例”的文件中,有一个名为“car.xml”的文件,其中包含以下内容:
我是 Java 新手。抱歉,这个时间太长了。下面是到目前为止我的代码的输出带有 ** 的部分是我遇到问题的地方。我应该比较两个 Car 对象的速度,但每个 Owner 对象要么是“安全”驾驶员,要么是
我想使用car::Anova运行ANCOVA,但无法找出是否有一种方法可以仅将协变量添加为主要效果(即,不应与任何事物交互)。 据我了解的ANCOVA,协变量只是添加到模型中的另一个主要效果(即另一个
我正在尝试在 RStudio 中制作一个 2 面板图。通常足够简单: par(mfrow=c(1,2)) #1*2 plotting window 但是,当我使用 scatterplot() 进行绘图
网上查了很久,不知道怎么申请car重新编码一系列列的值。 要重新编码单个列的值,我将运行如下命令: df$dv_r <- recode(df$dv, "2=1;1=0;0=NA") 然后,如果我想对
有人可以给我一个关于 car 和 cdr 的变体在Scheme中做什么的基本解释吗? 如果我是正确的,car 将返回列表中的第一项。 cdr 将返回一个不包括第一个元素的列表。 我对这些的其他变体感到
我想在eopl中使用typed/racket实现“LET”语言,但遇到问题:我尝试实现三个函数(empty-env、extend-env、apply-env),但我不知道如何标记类型信息,并且rack
我想在eopl中使用typed/racket实现“LET”语言,但遇到问题:我尝试实现三个函数(empty-env、extend-env、apply-env),但我不知道如何标记类型信息,并且rack
我是一名优秀的程序员,十分优秀!