我@(NO)在Objective-c代码中看到过,我猜这是一种语法糖,但它究竟意味着什么?
我正在使用 DrRacket 在 Racket 中编写一个函数:
(define (same-parity a .b)
(let ((remain (remainder a 2)))
(define (recur-part remain-list)
(cond ((= remain (remainder (car remain-list) 2))
(append remain-list (list (car remain-list)))
(recur-part (cdr remain-list)))
(else (recur-part (cdr remain-list)))))
(recur-part b)))
Run Code Online (Sandbox Code Playgroud)
但是编译器会抱怨以下内容:b: unbound identifier in module in: b
怎么可能(recur-part b)是在定义的范围内same-parity?
谢谢!
我正在写一个以间隔为参数的函数并返回百分比错误,但我坚持使用let或let*.这是代码:
嵌套版本:
(define (percent interval)
(let (start-point (car interval))
(let (end-point (cdr interval))
(let (center (/ (+ start-point end-point) 2)))))
(/ (- end-point center) center))
Run Code Online (Sandbox Code Playgroud)
错误是:let:错误的语法(不是绑定的标识符和表达式):start-point
让*版本:
(define (percent interval)
(let* ((start-point (car interval))
(end-point (cdr interval))
(center (/ (+ start-point end-point) 2))))
(/ (- end-point center) center))
Run Code Online (Sandbox Code Playgroud)
现在的错误是:
let*: bad syntax (missing body) in: (let* ((start-point (car interval)) (end-point (cdr interval)) (center (/ (+ start-point end-point) 2))))
Run Code Online (Sandbox Code Playgroud)
我已经提到了一些文档,但也无法弄清楚错误.(ps:我正在使用DrRacket 6.2)
我是Ruby的新手.我刚注意到,如果我写的话
a = 1, b = 2
puts a, b
Run Code Online (Sandbox Code Playgroud)
然后输出是
1
2
2
Run Code Online (Sandbox Code Playgroud)
但如果我写的话
a = 1
b = 2
Run Code Online (Sandbox Code Playgroud)
然后输出结果是
1
2
Run Code Online (Sandbox Code Playgroud)
为什么?我有以下代码:
s = 0, i = 1
while i <= 100
s += i
i++
end
puts s,i
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它有以下错误:
test.rb:14: syntax error, unexpected keyword_end
test.rb:16: syntax error, unexpected end-of-input, expecting keyword_end
puts s, i
^
Run Code Online (Sandbox Code Playgroud)
我也不知道我哪里错了.谢谢.