lisp - 如何显示前 N 个自然数,了解 Lisp 中的除数

标签 lisp common-lisp hamming-numbers smooth-numbers

显示前 N 个自然数,其约数仅为 2、3 和 7。 我写过类似的东西。我是 Lisp 的初学者。谢谢!

defvar x 1
(defun numbers(n)
    if(mod x 2 )
    (loop for x from 1 to n
    do(print x)
    )
)
print(numbers())

最佳答案

因为我刚刚有时间,所以你可以看看这个。可能不是完美的解决方案,但对于初学者来说应该是一个很好的起点。查看信息选项卡中的书籍以了解语法等。

(defun divisible-by (n m)
   "Returns T if N is evenly divisible by M."
   (zerop (mod n m)))

(defun numbers (n)
   "Print all number upto N which are divisible by 2, 3 and 7."
    (loop
       for i from 1 upto N
       if (and (divisible-by i 2) (divisible-by i 3) (divisible-by i 7))
         do (format t "~D~%" i)))

关于lisp - 如何显示前 N 个自然数,了解 Lisp 中的除数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58246348/

相关文章:

lisp - 如何将此代码推广到多变量方程?

lisp - 另一个 Lisp 函数的细化

algorithm - nᵗʰ丑数字

lisp - Portacle - 为什么当我访问文件时函数智能感知停止工作(它在 repl 中工作)

recursion - Lisp 中的递归函数如何工作?

sockets - 从 lisp 中的套接字流读取行

haskell - 无限生成汉明序列的最新技术

svg - Lisp Function 失败,尽管之前可以工作(Draft Sight、SVG 到 CAD)

ruby - 是否有与 car、cdr 和 cons 等效的 ruby​​?

stream - 难以理解/可视化SICP流汉明数程序