On Fri, 14 Jul 2006, Christian Maeder wrote: > Henning Thielemann schrieb: > >> in haskell-prime list there was a proposal to use '?' for such things: > >> > >> (1,2,?) > >> > >> only problem is what it's hard to define exactly where the lambda > >> should arise: > > the placeholder '?' becomes part of a new implicit identifier (that > exceeds Haskell's identifier syntax). If we have: > > (,,) :: a -> b -> c -> (a, b, c) > > we get a bunch of new identifiers: > > (?,,) :: b -> c -> a -> (a, b, c) > (,?,) :: a -> c -> b -> (a, b, c) > (,,?) :: a -> b -> c -> (a, b, c) > > And maybe also: > (?,?,) :: c -> a -> b -> (a, b, c) > > and so on. For infix ops this looks natural to me.
I see. It would require that ? belongs to tuples exclusively and that it will never be used elsewhere, say for lists like in [1,2,?]. Because then the expression [(1,?)] becomes ambigous. Like with every kind of syntactic sugar, I fear that the next thing that people request, are expressions like (1,2,3+?) for \x -> (1,2,3+x) > > Yes that's a really evil problem that I already encountered in > > mathematics. Some mathematicians like to write f(·) or even f(·-k) which > > exhibits exactly the ambiguity you mention. Such placeholders are a really > > bad idea. > > "f(?)" should not make sense in Haskell, since the parens do not belong > to the identifier "f". (It's also not necessary: \ x -> f(x) = f) Necessary or not, applied mathematicians don't care about redundancy. :-) I have seen $f(\cdot)$ instead of $f$ really often, as well as $f(\cdot-k)$ for \x -> f(x-k). _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
