Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

/prog/ challenge [HASKELL]

Name: Anonymous 2008-05-09 13:15

Use the loeb function:
loeb :: Functor a => a (a x -> x) -> a x
loeb x = fmap (\a -> a (loeb x)) x


To implement a basic spreadsheet processor. The processor should accept input of the form:
|##|A        |B    |C   |D       |
|01|(* B1 C1)|2    |3   |(* A1 2)|

The output from this example should be:
|##|A      |B    |C   |D     |
|01|6      |2    |3   |12    |

Cells may contain number literals, references to other cells of the form <letter><number>, or function applications of the form (<function> *<args>).

Name: Anonymous 2008-05-10 22:56

>>19
In C you would have to do dependency analysis (a graph problem) to determine the order in which to evaluate cells. In Haskell, you let the compiler do that for you by using loeb. Which is awesome.
Also, I'd like to see a parser/evaluator written in C that is as expressive and concise as the Haskell solution.
SO GO READ K&R, I'LL BE HAVING SEX WITH MY CUTE HASKELL THE DOG.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List