Browse thread
`This expression is not a function it cannot be applied'
-
Christian Sternagel
-
David Baelde
-
blue storm
- David Teller
-
blue storm
-
David Baelde
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | David Teller <David.Teller@u...> |
| Subject: | Re: [Caml-list] `This expression is not a function it cannot be applied' |
Or you can use ExtLib's enumerations for the purpose of abstraction.
That's what I'm doing in my parser combinator library.
Cheers,
David
On Tue, 2008-09-02 at 10:34 +0200, blue storm wrote:
> On Tue, Sep 2, 2008 at 10:26 AM, David Baelde <david.baelde@gmail.com> wrote:
> > This amouns to provide a cast from the abstract type to the function
> > type, while keeping the liberty on how it's implemented.
>
> If you want even more implementation liberty, you should consider
> making the internal "token collection" type abstract : you use a list
> for now, but might want to use Streams or lazy lists or what not
> someday.
>
> That would give something like that :
> module Parser : sig
> type ('a,'tok) t
> type 'tok input
> val token : ('tok -> 'a option) -> ('a,'tok) t
> val apply : ('a,'tok) t -> 'tok input -> ('a * 'tok input)
> val input_of_list : 'tok list -> 'tok input
> end = [...]
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
--
David Teller-Rajchenbach
Security of Distributed Systems
http://www.univ-orleans.fr/lifo/Members/David.Teller
Angry researcher: French Universities need reforms, but the LRU act brings liquidations.