【问题标题】:manipulating lists in common lisp [closed]在通用 lisp 中操作列表 [关闭]
【发布时间】:2012-11-18 17:17:39
【问题描述】:

如何从列表中创建列表,我真正可以使用什么功能我想一起使用 mapcar or maplist with cons 但我没有得到任何富有成果的结果,假设我有一个 list (a b) 然后我想要一个函数将创建一个包含相同元素的列表,但他们应该被告知像这样的列表((a) (b)),关于我如何解决这个问题的任何想法?有什么用吗?

if i have a list(a b)
the result should be ((a)(b))

谢谢大家

【问题讨论】:

  • 我不会说 lisp,但你应该可以做类似map (lambda x: cons(x,nil)) 的事情。希望这是可以理解的......
  • 这听起来像是来自一堆假的 stackoverflow 帐户的另一个假问题。所有人的拼写都极差,Lisp 语法错误,没有表现出自己的努力,问一些琐碎的问题。
  • @RainerJoswig “假问题”?我错过了什么?
  • @RainerJoswig 它怎么是假的???语法不是 lisp 语法,它只是我希望它看起来如何的一个例子,只是想在这里学习,如果你能帮助我,我将不胜感激如果你有想法谢谢
  • @fableal 感谢您的贡献:)

标签: functional-programming common-lisp clisp


【解决方案1】:

你想做的是这样的:

(defun listify(ls) 
    (mapcar (lambda (elem) (list elem))  ls))

编辑

与(感谢@RainerJoswig)相同:

(defun listify(ls) 
    (mapcar #'list ls))

如果你这样做:

(listify (list 1 2 3))

(listify '(1 2 3))

输出将是:

((1) (2) (3))

【讨论】:

  • (lambda (elem) (list elem)) 只是#'list
  • 不需要反对票。天哪。
  • 语法是#'list,而不是'#list
  • @Xach 我的错,已修复:P。糟糕的抄袭技巧。
猜你喜欢
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多