【问题标题】:sorting strings in lexicographical order in scheme在方案中按字典顺序对字符串进行排序
【发布时间】:2016-10-14 15:58:04
【问题描述】:

我是新来的计划。我想知道如何在方案中按字典顺序对字符串进行排序。 例如:

(sort (list "cat" "apple" "dog"))
(apple cat dog)

在 C++ 中,我可以使用 'A'

【问题讨论】:

  • 在 C++ 中 'A' < 'B' 不排序,而是比较两个值。你追求的是哪一个?

标签: sorting scheme r5rs


【解决方案1】:

这个问题的惯用答案很大程度上取决于您使用的方案实现。因此,例如,我会在 Racket 中编写

(sort (list "cat" "apple" "dog") string<?)

我看到您已将此问题标记为 r5rs,也许您在问是否可以在 R5RS 方案中编写此问题。是的,你绝对可以。但是使用你的方案实现提供的任何东西可能更简单。

【讨论】:

  • 嗨,约翰,感谢您的回答。是的,我正在使用 r5rs 方案。现在我想知道您将如何实现过程排序。我用 car 或 cdr 来操作它。但是我发现几乎不使用这两个操作很难跳过一个位置。例如(列表“苹果”“好”“猫”“狗”)。在第一次迭代调用。 “apple”被添加到结果列表中。然后在“apple”后面加上good。但是在这一步,如果我将 (cdr result-list) 传递给下一个调用。苹果将​​被错过。那么如何移动到下一个元素又要保留原来的东西。谢谢你:)
  • 听起来您正在寻找如何设计程序的第 11.3 节:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
  • 2023-01-21
  • 2014-02-08
  • 1970-01-01
  • 2016-06-14
相关资源
最近更新 更多