我正在研究Paul Graham的On Lisp,并尝试用EmacsLisp实现这些函数。其中一个是flatten: (flatten '(a (b c) ((d e) f)))(a b c d e f) 然而,由于某些原因,Paul Graham给出的实现在Emacs和Lisp上不起作用(总是返回nil): (defun flatten (x)
假设我有一个函数,它接受一个列表并做一些事情: (loop for element in aList ...))但是如果列表是嵌套的,我想在循环做事情之前首先将其展平,所以我想使用另一个函数(defun flatten(aList))来展平任何列表: (Lisp不喜欢这样。有没有其他直接的方法来解决这个问题?
今天,我在unix中发现了"time“命令,并认为我应该使用它来检查Haskell中的尾递归函数和普通递归函数之间的运行时差异。我编写了以下函数:fac :: (Integral a) => a -> a fac' 1 y = ynormal recursive
facSlow :: (Integral