我想在scheme中执行以下模式:
if N > 0:
pass
else:
do-function()
目前我把它模拟成这样:
(if (> N 0) pass?? (do-function))
做pass
、continue
、return
或;
的正确方法是什么,或者在方案中"什么都不做",但将其作为占位符保留在那里,这样我就知道这是有意的(而不是将if
更改为if not N > 0
或if N<=0
等(
你可以添加一个你喜欢的虚拟表情
(if (> n 0) '() (do-something))
或带有糖衣、
(define pass '())
(if (> n 0) pass (do-something))
但在Common Lisp和Scheme中都有一些结构可以在没有混乱的情况下使意图清晰——unless
和when
:
(unless (> n 0) (do-something))
(when (<= n 0) (do-something))
如果不执行分支,则值在Common Lisp中为nil
,在Scheme中为未指定值(即某些依赖于实现的值(。