toivoh
toivoh
Need to consider the scoping rules in global scope. Should be as simple as suppressing AST transformation in `debug_eval` for global scopes? Will have to assume that `@debug` is invoked...
Currently, lines that result from a macro expansion will be assumed to originate from the same file as the surrounding code, if they do not indicate otherwise.
Something like ``` @pattern f(x for x >= 0) = ... ``` but parsable as well as readable.
Not sure how this interacts with the rest of the machinery. Would it just be a way to generate more efficient code, or would it be useful also when writing...
Would be great to have. Not sure how it would work, though.
Once #10 is in place, it might be worth to try to construct a mechanism for keyword arguments on top of it. In it's simplest form, this could be dict...
Something like ``` @pattern f([:x => x::Int, :y => y::Int]) = ... ``` The rhs of `=>` should be a pattern, while the lhs should probably be fixed in advance,...
Something like ``` @pattern det([a b; c d]) = a*d - b*c ``` Should hopefully be a minor addition onto `Vector` patterns?
E.g. something like ``` @pattern f(x::IsEqual(5)) = ... ``` to match on `f(x)` as long as `isequal(x, 5)`. Should probably - assume and exploit that the predicate in question is...
When the same pattern variable is repeated within a signature, e.g. ``` @pattern egal(x, x) = true @pattern egal(x, y) = false ``` the pattern should require all occurrences to...