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
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)?