Hylang Map Destructuring
Hylang поддерживает деструктуризацию карты, как в clojure?
Например: https://gist.github.com/john2x/e1dca953548bfdfb9844
1 ответ
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. Макросы имеют строки документации, а модульные тесты имеют примеры.