【问题标题】:What is the difference between if and cond?if 和 cond 有什么区别?
【发布时间】:2020-11-15 20:05:28
【问题描述】:

也许我误会了什么。

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

  • 一个谓词(如果没有进一步的表达式,则返回评估)
  • 0 或 1 consequent(如果谓词 truthy 则计算并返回)
  • (如果存在结果)零或一alternative(如果谓词是falsy,则评估并返回)

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

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

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

【问题讨论】:

    标签: hy


    【解决方案1】:

    cond 中的方括号提供了一个隐含的do。就是这样。我通常仅将if 用于两个分支的情况,而将cond 用于其他所有情况。 if* 的存在其实只是一个实现细节。

    【讨论】:

    • 谢谢@Kodiologist!
    猜你喜欢
    • 2011-05-06
    • 2016-02-09
    • 1970-01-01
    • 2011-03-25
    • 2013-11-18
    • 1970-01-01
    • 2011-03-11
    • 2011-03-24
    • 1970-01-01
    相关资源
    最近更新 更多