[Haskell-cafe] Function composition in run-time?

Iustin Pop iustin at google.com
Wed Aug 24 14:44:51 CEST 2011


On Wed, Aug 24, 2011 at 04:35:42PM +0400, dokondr wrote:
> Hi,
> What is the Haskell way to compose functions in run-time?
> Depending on configuration parameters I need to be able to compose function
> in several ways without recompilation.
> When program starts it reads configuration parameters from a text file. For
> example, I have three functions, f1, f2, f3,  each doing some string
> processing. I need to support two configurations of string processors :
> 
> if param1
>    then sp = f1 . f2 . f3
>    else sp = f1 . f3
> 
> I'd like to avoid 'if' somehow and instead use some declarative way to
> specify code to run in external configuration file. In other words I need
> some easy tools to create mini DSLs without all the efforts usually involved
> with implementing full-blown DSL.

A simple alternative to if would be:

  options = [ ("foo", f1 . f2 . f3)
            , ("bar", f1 . f3 )]

and then "lookup param options". I don't know if this is what you're
looking for, though.

regards,
iustin



More information about the Haskell-Cafe mailing list