什么是 lisp/scheme 等价于 pass 或 "do nothing"



我想在scheme中执行以下模式:

if N > 0:
pass
else:
do-function()

目前我把它模拟成这样:

(if (> N 0) pass?? (do-function))

passcontinuereturn;的正确方法是什么,或者在方案中"什么都不做",但将其作为占位符保留在那里,这样我就知道这是有意的(而不是将if更改为if not N > 0if N<=0等(

你可以添加一个你喜欢的虚拟表情

(if (> n 0) '() (do-something))

或带有糖衣、

(define pass '())
(if (> n 0) pass (do-something))

但在Common Lisp和Scheme中都有一些结构可以在没有混乱的情况下使意图清晰——unlesswhen:

(unless (> n 0) (do-something))
(when (<= n 0) (do-something))

如果不执行分支,则值在Common Lisp中为nil,在Scheme中为未指定值(即某些依赖于实现的值(。

相关内容

  • 没有找到相关文章

最新更新