|
|
|
|
|
by aitchnyu
819 days ago
|
|
Whoa, a creative (in a good way IMO) use of __ getitem__() dunder method to depict attributes and children. No action at a distance using with blocks, static and strongly typing instead of stringly typing, no need to extend Python, composable from fragments. Have you tried to "bring up front" if and for?
For example > if_(cond, tag1(), tag2()) # without eagerly execute both branches Instead of > tag1() if cond else tag2() And for_(cars, lambda car: car_details(car)) # while still being type checked Instead of > [car_details(car) for car in cars] |
|
htpy supports generators/callables as children (https://htpy.dev/streaming/). As long as you are careful to wrap things in generators/lambdas everything is lazy. Implementing if_ and for_ is straightforward and anyone can build constructs like that to use. But will not be lazy unless all arguments are wrapped in lambdas:
output: