You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you define a curried function, the code lenses only prompt for the first set of parameters. For example:
functions
Launch | Debug
f: real -> real -> nat
f(a)(b) ==
1 / a + 1 / b;
This only prompts for a:real, which is "legal" but which naturally only returns the function value:
Default module is DEFAULT
Initialized in ... 0.001 secs.
p f(123)
= (real -> nat)
Executed in 0.005 secs.
It would be more sensible to prompt for all argument sets, and call (say) f(123)(456). This would require a tweak to the code lens configuration to use multiple arrays of "ApplyArgs", much like the underlying explicit function definition. Simple functions and operations would only have one ApplyArgs, of course.
As a workaround, you can edit the launch.json file, but that is unfriendly.
An alternative would be for the code lens to "flatten" the curried argument sets, but then the invocation of f(123)(456) would not know where to put the brackets, in general.
@MarkusEllyton If we're working in this area to add "value" presets for counterexample launching, could we add curried parameter sets at the same time?
If you define a curried function, the code lenses only prompt for the first set of parameters. For example:
This only prompts for
a:real
, which is "legal" but which naturally only returns the function value:It would be more sensible to prompt for all argument sets, and call (say)
f(123)(456)
. This would require a tweak to the code lens configuration to use multiple arrays of "ApplyArgs", much like the underlying explicit function definition. Simple functions and operations would only have one ApplyArgs, of course.As a workaround, you can edit the
launch.json
file, but that is unfriendly.See #188
The text was updated successfully, but these errors were encountered: