我正在尝试将用户输入并将其存储在列表中,而不是仅包含单个字符串的列表,我希望扫描的每个单词都是自己的字符串.例:
> (input)
This is my input. Hopefully this works
Run Code Online (Sandbox Code Playgroud)
会回来:
("this" "is" "my" "input" "hopefully" "this" "works")
Run Code Online (Sandbox Code Playgroud)
请注意我在最终列表中不需要任何空格或标点符号.
任何投入将不胜感激.
浏览 Common Lisp 源代码时,我注意到人们最常使用#'foowhere'foo就足够了——也就是说,无论在何处接受函数指示符,他们都会选择传递函数。
当然,#'foo当foo通过flet等等定义时是必要的。我理解这一切的机制——我的问题是一种风格。难道只是因为人们不想考虑'foovs #'foo,所以他们使用后者是因为前者有时不起作用?即使是这样,它也不会解释使用,#'(lambda ...)因为#'在那里总是不必要的。
CL 有时被称为丑陋,因为#',并且大多数新手没有意识到在(我敢说)大多数情况下它是不必要的。我不是新人,但我碰巧更喜欢'foo. 为什么我不正常?如果我发布一些给funcalland符号的代码,apply我会被嘲笑和羞辱吗?我正在考虑在我的领域开始一个函数指示符匿名章节。我怀疑人们想要使用功能指示符,但由于同龄人的压力,他们害怕“出来”。
我有一个整数的排序列表,(1 2 4 5 6 6 7 8 10 10 10).我想将它们分组,以便我得到((1) (2) (4) (5) (6 6) (7) (8) (10 10 10)).
到目前为止,我有这个,它有效:
(let ((current-group (list)) (groups (list)))
(dolist (n *sorted*)
(when (and (not (null current-group)) (not (eql (first current-group) n)))
(push current-group groups)
(setf current-group (list)))
(push n current-group))
(push current-group groups)
(nreverse groups))
Run Code Online (Sandbox Code Playgroud)
但我确信必须有更多的LISPy方法来做到这一点.有任何想法吗?