Version française
Home     About     Download     Resources     Contact us    
Browse thread
`This expression is not a function it cannot be applied'
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ 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.