Difference between revisions of "H-99: Ninety-Nine Haskell Problems"

From HaskellWiki
Jump to navigation Jump to search
(Created page with first problem filled in)
 
(all haskell solutions have been added)
(81 intermediate revisions by 20 users not shown)
Line 1: Line 1:
  +
__NOTOC__
These are Haskell translations of [http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html Ninety Nine Lisp Problems].
 
   
 
These are Haskell translations of [http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html Ninety-Nine Lisp Problems],
=== Problem 1 ===
 
  +
which are themselves translations of [https://prof.ti.bfh.ch/hew1/informatik3/prolog/p-99/ Ninety-Nine Prolog Problems].
   
  +
If you want to work on one of these, put your name in the block so we know someone's working on it. Then, change n in your block to the appropriate problem number, and fill in the <Problem description>,<example in Haskell>,<solution in haskell> and <description of implementation> fields. Then be sure to update the status on this page to indicate that we have a solution!
<pre>
 
(*) Find the last box of a list.
 
Example:
 
* (my-last '(a b c d))
 
(D)
 
</pre>
 
   
  +
== The problems ==
This is "last" in Prelude, which is defined as:
 
   
  +
These problems have been split into 11 parts, for ease of access.
<haskell>
 
  +
last :: [a] -> a
 
  +
* [[99_questions/1_to_10|Questions 1 to 10]]: Lists
last [x] = x
 
  +
* [[99_questions/11_to_20|Questions 11 to 20]]: Lists, continued
last (_:xs) = last xs
 
  +
* [[99_questions/21_to_28|Questions 21 to 28]]: Lists again
</haskell>
 
  +
* [[99_questions/31_to_41|Questions 31 to 41]]: Arithmetic
  +
* [[99_questions/46_to_50|Questions 46 to 50]]: Logic and codes
  +
* [[99_questions/54A_to_60|Questions 54A to 60]]: Binary trees
  +
* [[99_questions/61_to_69|Questions 61 to 69]]: Binary trees, continued
  +
* [[99_questions/70B_to_73|Questions 70B to 73]]: Multiway trees
  +
* [[99_questions/80_to_89|Questions 80 to 89]]: Graphs
  +
* [[99_questions/90_to_94|Questions 90 to 94]]: Miscellaneous problems
  +
* [[99_questions/95_to_99|Questions 95 to 99]]: Miscellaneous problems, continued
  +
  +
(Though the problems number from 1 to 99, there are some gaps and some additions marked with letters. There are actually only 88 problems.)
  +
  +
== Solutions ==
  +
  +
Known solutions are listed at [[99 questions/Solutions]]. Some of those we have could do with cleaning up or additional solutions.
  +
  +
== References ==
  +
  +
* [https://prof.ti.bfh.ch/hew1/informatik3/prolog/p-99/ P-99: Ninety-Nine Prolog Problems] contains Prolog solutions to all the problems.
  +
* [http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html L-99: Ninety-Nine Lisp Problems] contains Lisp solutions to problems 1-11, 14, 15, 17 and 20-28.
  +
* [http://www.oreillynet.com/onlamp/blog/2006/12/99_problems_in_perl_6.html 99 Problems in Perl 6] has an increasing number of Perl 6 solutions (running on [http://www.pugscode.org/ Pugs]).
  +
* [http://www.christiankissig.de/cms/index.php/en/programming/28-ocaml/28-99-problems-in-ocaml 99 Problems in OCaml] contains Ocaml solutions to many problems.
  +
  +
[[Category:Tutorials]]
  +
[[Category:Code]]

Revision as of 20:39, 22 November 2013


These are Haskell translations of Ninety-Nine Lisp Problems, which are themselves translations of Ninety-Nine Prolog Problems.

If you want to work on one of these, put your name in the block so we know someone's working on it. Then, change n in your block to the appropriate problem number, and fill in the <Problem description>,<example in Haskell>,<solution in haskell> and <description of implementation> fields. Then be sure to update the status on this page to indicate that we have a solution!

The problems

These problems have been split into 11 parts, for ease of access.

(Though the problems number from 1 to 99, there are some gaps and some additions marked with letters. There are actually only 88 problems.)

Solutions

Known solutions are listed at 99 questions/Solutions. Some of those we have could do with cleaning up or additional solutions.

References