I think this will work so I'm going to try it.

Objective
=======

We want to get rid of ?name in patterns, but I don't want to break anything.
Yet. Well actually I love breaking stuff .. :)

Transitional
==========

So I am going to try this: match .. with

        | Some x => ....

The pattern here is called an applicative pattern, because it looks
like a function application. If you write an applicative pattern
and the argument is a name, it will be interpreted as a pattern variable.

If the argument was meant to be a constructor instead, you must 
write this:

        | Some #Empty =>

This WILL break some code, but hopefully not much. In a non-applicative pattern,
you must still write

        | None => // a constructor
        | ?v =>  // a variable


however you can write

        | #None =>

and you should transition to that everywhere because eventually it will be 
mandatory,
and plain "v" will mean "pattern variable".

Note: you can also write this:

        | Some (Empty) => ...

instead of 

        | Some #Empty

However that will only work in the transitional period.

[There is a caveat. It is clear that

        | Some List::Empty

should be allowed but it isn't. You have to write

        | Some #List::Empty

even though there is no possibility of  List::Empty being considered a variable.
This is because a simple identifier is a qualified name, and I cannot 
distinguish
them (at the moment). I think I can fix that but I won't try until after testing
the above transitional code.]


--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to