On Tue, Nov 6, 2012 at 12:45 AM, Oscar Benjamin <oscar.j.benjamin@gmail.com> wrote:
On 5 November 2012 21:00, Daniel Fischer wrote
 
> and the former is not even correct, because there is exactly one permutation
> of an empty list.

I'm trying to convince myself that this is logically necessary but it
still seems consistent in my mind that the set of permutations of an
empty list is empty. I guess maybe if you posit that a sequence should
always be contained by the set of its permutations then you reach this
conclusion.

A permutation of a set is a bijection from the set to itself. There is one map from the empty set to itself, the empty map, that is a bijection.

The number of permutations of a set of n elements is n!, and 0! = 1 should make you expect that there is one permutation of an empty set.

>
> Trace the execution of very simple cases (empty lists, singleton lists, lists
> with two elements) by hand with pencil and paper. That's the most instructive
> and fruitful way.
>
> Check the results of simple cases against what you know the result ought to
> be.

I see what you mean now.

> Single-step through the evaluation of simple cases in the ghci debugger if
> necessary.

I need to work out how to use this. I've just found why I was unable
to use it before: it only works if the file is interpreted. The quick
fix was to delete all files created by the compiler. Is there a way
that I can tell ghci to just ignore those files and load my program as
interpreted for debugging?

You can

ghci> :load *ModuleName

to get it interpreted.