H-99: Ninety-Nine Haskell Problems

From HaskellWiki
Revision as of 04:22, 12 December 2006 by Jcreigh (talk | contribs) (added chessguy from #haskell's solution to problem 2)

Jump to: navigation, search

These are Haskell translations of Ninety Nine Lisp Problems.

Problem 1

(*) Find the last box of a list.
Example:
* (my-last '(a b c d))
(D)

This is "last" in Prelude, which is defined as:

last :: [a] -> a
last [x] = x
last (_:xs) = last xs

Problem 2

(*) Find the last but one box of a list.
Example:
* (my-but-last '(a b c d))
(C D)

This can be done by dropping all but the last two elements of a list:

myButLast :: [a] -> [a]
myButLast list = drop ((length list) - 2) list