首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试接受字符串的方案函数

调试接受字符串的方案函数
EN

Stack Overflow用户
提问于 2021-10-07 03:57:52
回答 1查看 74关注 0票数 0

我正在开发一个Scheme函数,该函数接受两个单词,并检查它们的长度是否相同。如果它们具有相同的长度,它应该输出'same length‘,如果它们不具有相同的长度,则使用它们的长度指定较长和较短的字符串。所以我试着

代码语言:javascript
复制
 (define (strings x y)
      (if (= (string-length x)(string-length y))
          display "same length"
          (string-length x)(string-length y)))

但是它说两个字符串的长度是相同的,如果我把括号放在“相同的长度”上,它也只打印x的字符串长度。我不知道该怎么去修理它。

EN

回答 1

Stack Overflow用户

发布于 2021-10-07 04:50:38

您格式化代码的方式与IDE所做的并不一致。例如:将您的代码粘贴到DrRacket中,然后按CTRL+i键,我会得到:

代码语言:javascript
复制
(define (strings x y)
  (if (not (= (strings-length x)(strings-length y))
           (display "same length")) ; this is second argument to not
      (if (> (strings-length x)(strings-length y))
          ((strings-length x)(strings-length y)))))

因此,第一个if使用两个参数调用not,因为在行尾缺少闭合括号。您还缺少else子句,这样一次错误的测试就会把结果留给实现。

基本上,你是在追求这个:

代码语言:javascript
复制
(if (= (string-length x) (string-length y))
    what-to-do-when-true
    what-to-do-when-false)

请注意,您不需要第二个if,因为您正在测试与第一个相反的代码,并且您肯定会在代码what-to-do-when-false中结束。还要注意,我删除了not,所以您只需切换顺序即可。如果您愿意,可以重新添加not,但不要忘记括号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69475277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档