scheme - 什么是 lisp/scheme 等价于 pass 或“什么都不做”
问题描述
我想在方案中执行以下模式:
if N > 0:
pass
else:
do-function()
目前我把它模拟成这样:
(if (> N 0) pass?? (do-function))
在计划中“无所事事”的正确方法是什么,但将其保留为占位符,以便我知道这是故意的(而不是更改topass
或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))
如果不采用分支,则该值nil
在 Common Lisp 中,而在 Scheme 中未指定(即一些依赖于实现的值)。
推荐阅读
- html - 具有多个条件的 ngClass 错误条件不起作用
- python - 如何异步迭代范围
- java - Mybatis 3.4.6 - 数据未插入 HSQLDB
- shell - 如果为真,Shell 脚本从某些给定行打印整行
- excel - 如果单元格中的值与前一个单元格不同,如何插入 1,如果值相同,如何插入 2
- python-3.x - 在 Pandas 中将行转换为列和一种热编码
- android - 在库中使用 Firebase
- php - 如何在 PHP 7.2 中生成 64 位 Murmur 哈希 v2?
- javascript - 简单代码Rails上的JQuery无效或意外令牌
- c# - C# - 如何将 html 输入值传递给 url.Action