This syntax recommendation doesn't seem to include all the things we
need to express. We need to distinguish between non-call arguments (I
used space), call arrows (double arrow), and unknown (single arrow).

On Sun, Mar 22, 2015 at 8:08 AM, Keean Schupke <[email protected]> wrote:
> I still like writing the call arrow as a multi (variable) argument infix
> constructor, and leaving out the function arrows. Prolog notation does not
> have this problem as you could have:
>
> call(arrow(a, arrow(b, c)), d)
>
> Which has clear meaning, but the prefix notation is hard to read.
>
> so you have:
>
> a -> b -> c -> d
>
> For arity abstract functions and
>
> a b c => d
>
> The arrows between a b and c seem unnecedsary, but could be included for
> concrete arity. Nesting needs disambiguation, so some form of bracketing is
> necessary. If () are already in use then something like:
>
> {a b c}-> d

"a b c->d" should be as unambiguous as "a b c=>d". Nested functions in
argument types need parens, that's all.

> Would work, but some brackets would seem to be needed (and familiar bracket
> symbols are more readable than letters or other symbols). You could add the
> other arrows back:
>
> {a -> b -> c} -> d
>
> But in general all this is superficial notation, the underlying structure
> remains the same.
>
> Keean.
>
> On 21 Mar 2015 16:43, "Matt Oliveri" <[email protected]> wrote:
...
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to