这个函数基本上应该像Scheme中的应用函数一样,只是在Javascript中重新构建即可。所以我有一个给定的函数f,有n个参数和一个长度为n的数组。 当我事先不知道函数将有多少参数时,有没有办法用数组的值调用函数? 例如,如果函数是: var f = function (x,y,z) {return x+y+z;}; 数组是1,2,3,有没有办法在for循环中调用f,或者类似的值,而不需要事先知道f会有多少个参数?
我试图在Scheme中实现扩展的Euler算法,并找到了正确的结果,但我的主要目标是作为一对得到解决方案。但我不明白为什么在我的对子前面有一个mcons符号。
这是我的功能和输出
(define ax+by=1
(lambda (a b)
(if (= a 0)
(cons 0 1)
(let ((pair (ax+by=1 (remainder b a) a)))
(cons (- (cdr pair)
(* (quotient b a) (car pair)))
我想尝试扩展一些Lisp (Scheme、Racket、Clojure、any)来运行外部命令,如下所示:
; having
(define foo ...)
(define bar ...)
; on command
(ls (foo bar) baz)
; this lisp should evaluate (foo bar) as usual, with result "foobar", then
(ls foobar baz)
; here "ls" is not defined
; instead of rising "undefined id
我被要求用球拍写一个程序,以便将算术运算符的行为从前缀更改为后缀。更准确地说:我希望这段代码:(a b +)的行为像:(+ a b) 我想使用define-syntax-rule来改变+运算符的行为,但我有一个问题,在使用define-syntax-rule时,我们首先写入宏的名称,然后再写参数。我的问题是:有没有办法在球拍函数中写出开头的参数和最后的名字?
在将一些Fortran翻译成Scheme/Racket时,我遇到了这个函数:
; EPSILON(X) The least positive number that added
; to 1 returns a number that is greater than 1
如何在Scheme中找到号码?