我知道如何用我知道的所有其他语言来做到这一点,但我刚刚开始使用 Lisp 并不太了解它。我的想法
显得手足无措。有没有更好的方法来做到这一点?我正在尝试编写一个函数,给定一个字符串,返回一个字母排序的字符串。因此,例如:
gate => aegt
house => ehosu
door => door
此例程将用作字谜查找器的一部分。
谢谢!
最佳答案
在 Common Lisp 中,字符串是序列,而 sort
适用于任何序列类型,因此它可以解决问题。
下面是一个例子:
(let ((the-string (copy-seq "this is the string")))
(sort the-string #'char-lessp))
;; => " eghhiiinrsssttt"
和 here's
sort
的 Hyperspec 条目和 stable-sort
.只需选择您的谓词( sort
的第二个参数)即可获得所需的排序顺序。请注意,我使用了
copy-seq
在示例中,因为 sort
是破坏性的 - 它就地修改了字符串。
关于Common-Lisp:如何对字符串的字符进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18290641/