What is Expressiveness in a Computer Language

Greg Buchholz sleepingsquirrel at yahoo.com
Tue Jun 27 02:34:03 CEST 2006

Chris F Clark wrote:
> Thus, as we traverse a list, the first element might be an integer,
> the second a floating point value, the third a sub-list, the fourth
> and fifth, two more integers, and so on.  If you look statically at
> the head of the list, we have a very wide union of types going by.
> However, perhaps there is a mapping going on that can be discerned.
> For example, perhaps the list has 3 distinct types of elements
> (integers, floating points, and sub-lists) and it circles through the
> types in the order, first having one of each type, then two of each
> type, then four of each type, then eight, and so on.

  Sounds like an interesting problem.  Although not the exact type
specified above, here's something pretty similar that I could think of
implementing in Haskell.  (I don't know what a "sub-list" is, for
example).  Maybe some Haskell wizard could get rid of the tuples?

data Clark a b c = Nil | Cons a (Clark b c (a,a)) deriving Show

clark = (Cons 42 (Cons 3.14 (Cons "abc"
        (Cons (1,2) (Cons (1.2,3.4) (Cons ("foo","bar")
        (Cons ((9,8),(7,6)) (Cons ((0.1,0.2),(0.3,0.4)) Nil))))))))

main = print clark

More information about the Python-list mailing list