方案 - 方程式?比较两个字符串?

Tom*_*Tom 5 scheme

我的程序有问题.

我有一个比较2字符串的条件:

(if(eq?(exp1)(exp2)))

当exp1给我一个字符串,exp2给我一个字符串.当然,当我改变"eq?"时 到"=",它给我下一个问题:

=:期望类型<number>作为第二个参数,给定:ie; 其他论点是:即.

当我运行程序时,函数不会进入"if"函数中的第一个表达式,并进入第二个表达式(意味着条件为false).

我能做什么?

谢谢.

dfa*_*fan 6

按照等价谓词 R6RS的部分,你应该使用equal?,不eq?,这不是测试它的两个参数是否完全相同的对象(而不是两个对象具有相同的值).

(eq? "a" "a")                           ; unspecified
(equal? "abc" "abc")                    ; #t
Run Code Online (Sandbox Code Playgroud)

作为评论中的文字说明,字符串部分还提到string=?,特别是字符串比较,这可能避免进行类型检查.