[<<][meta][>>][..]

Wed Nov 17 15:29:55 EST 2010

## Generalizing Staapl

Just to get an idea of the abstract structure of what I'm trying to do
with Staapl, here[1] is an attempt to express the concatenative macro type
I :: m -> (t -> t)
I' :: [m] -> (t -> t)
in a Haskell coat.
This is the first thing I came up with. Both m and t can be anything.
The only structure that's there is that a concatenation operator, here
expressed by list construction, has a meaning if there is a meaning
for primitive types m.
class Concat m t where
iPrim :: m -> (t -> t) -- interpret primitive
iConcat :: [m] -> (t -> t) -- interpret concatenation
iConcat = compose . (map iPrim) where
compose = foldr (.) (\x -> x)
Generalizing this to any foldable data structure gives:
[1] http://zwizwa.be/staapl/meta/staapl/staapl.hs

[Reply][About]

[<<][meta][>>][..]