Hylang Map Destructuring - PullRequest
       29

Hylang Map Destructuring

0 голосов
/ 27 апреля 2018

Hylang поддерживает разрушение карты, как в clojure?

Например: https://gist.github.com/john2x/e1dca953548bfdfb9844#maps

1 Ответ

0 голосов
/ 27 апреля 2018

В Hy нет встроенной деструктуризации отображения, хотя итеративная деструктуризация Python работает в Hy.

Вы можете таким образом деструктурировать карты в Python, используя списки, но они ограничены, например,

>>> dict(a=1, b=2, c=3)
{'a': 1, 'b': 2, 'c': 3}
>>> a, b, c = [_[k] for k in ['a', 'b', 'c']]
>>> a
1
>>> b
2
>>> c
3

Становится неловко, когда во что-то вкладываются диктовки, но иногда это достаточно хорошо. Было бы довольно легко сделать макрос для этой идиомы в Hy.

Я также работал над hy.contrib.destructure модулем . Это все еще не было объединено (не действительно закончено), но часть разрушения картографии работает. Вы можете попробовать использовать это, если вам нужно работать с глубоко вложенными данными. Синтаксис похож на Clojure. В макросах есть строки документации, а в модульных тестах есть примеры.

...