[Haskell-beginners] Re: Addable function combinators
edgar klerks
edgar.klerks at gmail.com
Mon Mar 29 03:29:16 EDT 2010
A small erratum <*|||> has type (b -> c) (a -> a1 -> a2 -> b) a a1 a3 and it
is nicer to add more * by defining these functions:
con = (flip.) .(.)
(<**>) = flip
(<***>) = con (<**>)
(<****>) = con (<***>)
(<*****>) = con (<****>)
Then the serie of <**|> gets:
(<*****|>) = (<*|>).(<*****>)
(<****|>) = (<*|>).(<****>)
(<***|>) = (<*|>).(<***>)
(<**|>) = (<*|>).(<**>)
(<*|>) = (.)
Now they behave more like (.), Eg: <**|> :: (a -> b -> c) (a1 -> b) -> a1 ->
a -> c
And the rest becomes:
(<**||>) = (<*||>).(<**>)
(<**|||>) = (<*|>).(<**||>)
(<**||||>) = (<*|>).(<**|||>)
(<***||>) = (<*||>).(<***>)
(<***|||>) = (<*|>).(<***||>)
On Mon, Mar 29, 2010 at 2:04 AM, edgar klerks <edgar.klerks at gmail.com>wrote:
> He All,
>
> I was toying a bit around and found a function, which combines an function
> of arity 1 with 2.
> Then I produced a whole sequence of these function, the number of * stands
> for the arity of the left function and the number of | stands for arity the
> right function. so <*|||> :: (b -> c -> d) -> (a -> c) -> a -> b -> d:
>
> (<*****|>) = flip (<*|||||>)
> (<****|>) = flip (<*||||>)
> (<***|>) = flip (<*|||>)
> (<**|>) = flip (<*||>)
> (<*|>) = (.)
> (<*||>) = (<*|>).(<*|>)
> (<*|||>) =(<*||>).(<*|>)
> (<*||||>) = (<*||>).(<*||>)
> (<*|||||>) = (<*||||>).(<*|>)
>
> con = (flip.) .(.)
> (<**||>) = (<*||>).flip
> (<**|||>) = (<*|>).(<**||>)
> (<**||||>) = (<*|>).(<**|||>)
> (<***||>) = (<*||>).(con flip)
> (<***|||>) = (<*|>).(<***||>)
> (<****||>) = (<*||>).(con.con $ flip)
>
> I found it interesting, but now I am stuck. is it possible to make the
> stars addable instead of the | or both?
>
> Greets,
>
> Edgar
> Edgar
>
>
>
--
Flatliner ICT Service,
Email: Edgar.klerks at gmail.com,
Tel: +31727851429
Fax: +31848363080
Skype: edgar.klerks
Website: flatlinerict.nl
Adres: Koelmalaan 258,
1813JD, Alkmaar
Nederland
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20100329/b6a71236/attachment.html
More information about the Beginners
mailing list