Open kurtbrose opened 4 years ago
an example of how this might combine with MExpr
M((T.a, T.b)) == (1, 2)
This may be applicable to default
argument in a lot of places -- this would let us strike a middle-ground between "always spec" and "always a constant"
another place it could be useful is something like Let()
or S()
-- although currently those are "always spec"
https://github.com/mahmoud/glom/pull/196 would cover this nicely
there are places where values are interpreted as constants, except for a few special cases carved out
in all these cases, Fill() could be used instead:
so
T
and(1, T)
would both work the same way --Fill()
basically says "walk down literals and mostly leave as-is, but if specs are present evaluate them"The only "extra" thing that Fill does is call callables; not sure if this is okay as an intrinsic behavior, or if we should make something else that is like Fill but only recurses, doesn't do any calls.