
G'day all. I wrote:
I think you could. What you need to convince a strict programmer of is that laziness gives you modularity. The Graham Hutton Sudoku solver is a nice example, but it'd be cool if we had a similar example that was less cheesy than Sudoku.
OK, it's not pretty, but this is diff(1) in 120 lines: http://andrew.bromage.org/darcs/diff/ It illustrates: - Lazy evaluation (dynamic programming, lazy I/O, infinite lists) - Function pipelining with (.) and ($) - Monads - Immutable arrays - List comprehensions - Algebraic data types - Type-safe type synonyms (newtype) - Fancy newtype deriving (Num) - Smart constructors - Pattern matching with at-patterns - Lambda expressions - Operator sections - More besides Cheers, Andrew Bromage