1

也许我误解了什么。

在 Hy 中,if*可以取(if*符号后)

  • 一个谓词(如果没有其他表达式,则返回评估)
  • 零个或一个结果(如果谓词为,则评估并返回)
  • (如果存在结果)零个或一个替代项(如果谓词为falsy则评估并返回)

如果谓词是假的并且没有提供替代表达式,则返回 None。

if(没有星号)可以处理任意数量的谓词和结果对,如果没有谓词评估为真,则评估并返回最终的可选非谓词表达式。

这与 有何不同cond,除了cond' 需要在谓词 - 后件对周围使用括号?

4

1 回答 1

1

中的方括号cond提供了一个隐含的do. 而已。我通常if仅用于两个分支案例和cond其他所有案例。的存在if*实际上只是一个实现细节。

于 2020-11-15T20:16:43.953 回答