我是Scheme的新手,我正在尝试实现一个简单的函数来检查字符串的结构。特别是,我正在检查字符串是否为ss格式 这是功课所以请不要给出完整的答案..我的代码中只有一个我无法解决的错误。
我得到了
错误:1不是函数[(anon),/,/,(anon),display,s,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB ,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB,CB,/,CB,/,CB,/,CB,/,CB,/ ,CB,/,/,CB, - ,CB, - ,CB, - ,CB, - ,CB,string-length,CB, - ,CB, - ,CB, - ,CB, - ,CB, - ,CB , - ,CB, - ,=,CB, - ,CB, - ,CB, - ,CB, - ,CB, - ,CB, - ,CB, - ,CB, - ,CB,=,CB,=,CB , - ]
这是我的代码:
(define CB
(lambda (s)
(display "String: ")(display s)
(define S_length (string-length s))
(display " length: ")(display S_length)
if (not(= S_length 0))
if (even? S_length)
(define leftString (substring s 0 [(- (/ S_length 2) 1)]))
(define rightString (substring s (- (/ S_length 2) 1) [(- S_length 1 )]))
(string=? leftString rightString)
)
)
答案 0 :(得分:2)
部分:
[(- (/ S_length 2) 1)]
和
[(- S_length 1 )]
不应该有额外的括号[]
。这导致错误,因为表达式减少到(1)
,试图将1
应用于无参数。