?

Log in

Userpic

Haskell Haven

A Coder's Refuge

Name:
yumagene
External Services:
  • yumagene@livejournal.com
I am studying/researching the use of Functional Programming languages which include Haskell, SML, OCaml, Scheme, Common Lisp and Erlang. Right now most of my work has been in developing Libraries in Haskell, and just trying to get a better understanding of the fundamentals of that language. Almost all of the libraries I have done thus far are done in the purely functional aspect of the language. I have built a solver for arbitrarily complex expressions in 3 variables. Instances of the solver on an equation in 3 variable can then be combined with other equations, or even other instances of the solver applied to other equations of up to 3 variables each.
see main haskell site:
http://www.haskell.org/haskellwiki/Haskell
Of late I have been doing a lot of my work in the arrow notation of Haskell that provides a very nice way to
bundle up computations, that can branch down multiple streams.. Very compact solutions can be written with the terse, but very readable notation. see more about arrows here:
http://www.haskell.org/arrows/
Have done quite a bit of late with mixing the computational combination mechanisms of Monads, Applicative Functors, and Arrows together when it seemed like the shortest path. Have done a lot of definitions of new operators in especially the Applicatives.
I also am a champion of another less mainstream language called Unicon, which is an extension of the Icon programming language developed at University of Arizona, primarily by Ralph Griswold, who was also the primary inventor of Snobol and subsequently Snobol4. I have used the Icon and subsequently the Unicon language since about 1984 or so. It is an imperative language, and the typing as opposed to the Haskell and ML family is dynamic in nature... with conversions from type to type, if it makes sense, is done automatically in most cases. Icon has some very useful constructions.. and ways to manipulate data. Tables with any type as a key or as the data component, list that can contain any other type of data.. and the type is variable from cell to cell. It supports built in list functions such as "put, push, pop, and pull" that allow structures like stacks and cues to be built and manipulated in very intuitive ways. Tables can be sorted on either the key or the data component resulting in a sorted list of tuples. It supports a very high level String manipulation mechanism called scanning with many support functions. There is also a set of functions to build and subsequently access coexpressions and build generators that can give back multiple values that can be accessed from different parts of a program. These can also be rewound or reset as it were from anywhere in the program body. Just a lot of power that is not in most of the mainstream languages, and yet the syntax is very much like Pascal...
but simpler in that all the typing declarations are for the most part missing. Take a look at Icon:
http://www.cs.arizona.edu/icon/
and Unicon:
http://unicon.org/
computer language, computers, functional programming, haskell programming language, politics, unicon programming language.

Statistics