gpt4 book ai didi

lisp - Lisp中有类似C的return语句的吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:12 26 4
gpt4 key购买 nike

我想在用 Lisp 编写的递归函数中实现一个基本条件,但我不能这样做,因为 Lisp 中没有 return 语句。

我的 Lisp 代码是基于这个 C 代码

if (n==0) return;

我如何在 Lisp 中实现它?

最佳答案

Common Lisp 有特殊形式 RETURN-FROM (及其相关的 RETURN )做你想做的事。

(defun accumulate-list (list)
(when (null list)
(return-from accumulate-list 0))
(+ (first list)
(accumulate-list (rest list))))

话虽如此,我更喜欢使用 COND在编写递归函数时。

(defun accumulate-list (list)
(cond
((null list)
0)
(t
(+ (first list)
(accumulate-list (rest list))))))

关于lisp - Lisp中有类似C的return语句的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26289607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com