Talk:Learning Haskell with Chess
list handling vs. abstract data types (array)
Lists are very inefficient, but understanding list handling is important for understanding functional programming. On the other hand, using Array
would provide understanding for abstract data types.
using state monad for the board
Only possible with advanced students, do not try this in introductory courses.
full ruleset vs. reduced and simplified ruleset
To implement the full ruleset you have to remember and consider previous states (in particular for castling rule and capturing en passant).
representation of positions
Is type Pos = (Int,Int)
ok? Or better something like type Pos = (Row, Column), data Row = A | B | ... | H, data Column = ?
. How to model the constraints (0<=x,y<=7)?