hy的`if x in y'等效项是什么?

时间:2019-01-14 08:22:35

标签: hy

我似乎无法在hy中找到内建的(或等效的)内建函数,使我无需处理异常即可检查某些东西

我想写些类似的东西:

(setv foo {:a 1 :b 2})
(if (in foo :c) 
    (foo)  
  (boo))

(:c foo)(get foo :c)都导致异常

1 个答案:

答案 0 :(得分:1)

Hy具有所有Python运算符的等效项。 Hy对所有运算符都使用前缀表示法,但不会更改操作数在后缀表示法中的顺序。因此,Hy中的(- 10 8)2,与Python中的10 - 8一样。

in运算符也是如此。 (in :c foo)就像HyKeyword('c') in foo。可以将其视为in(:c, foo),而不是“在foo中,:c?”。