gpt4 book ai didi

javascript - 在 JavaScript 中实现 Lisp 的缺点

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:20 25 4
gpt4 key购买 nike

我正在尝试翻译 Lisp 代码(在 Abelson/Sussman MIT course 中找到)

(define (cons a b)
(lambda (pick)
(cond ((= pick 1) a)
((= pick 2) b))))

(define (car x) (x 1))

(define (cdr x) (x 2))

(car (cons 2 4))

到 JavaScript ( fiddle )

function cons(a, b){
return function(x){
if(x === 1){
return a;
}
else if(x === 2){
return b;
}
}
}

function car(x){
x(1);
}

function cdr(x){
x(2);
}

console.log(car(cons(2,4)));

JavaScript 中的结果是undefined。我在调试器中跟踪它,虽然 cons 然后 car 返回所需的值,但当涉及到控制台(或警报,或分配给变量)时,结果是总是 undefined

在 JavaScript 中实现(或使用)它的正确方法是什么?这有可能吗?

最佳答案

愚蠢的错误,我忘了返回:

function car(x){
return x(1);
}

function cdr(x){
return x(2);
}

关于javascript - 在 JavaScript 中实现 Lisp 的缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25682689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com