>  まず、s(整数の配列の配列)の要素のうち、eが含まれる配列のみを

えっと、用語なんですが、Haskellではリスト(List)と配列(Array)とは区別して
おかないと話が混乱しますよ。ここでは、たけさんが「配列」とおっしゃっている
のは「リスト」あるいは「リストのリスト」ですね。

> filterして返す関数 includes を作りました。
> 
> includes 		:: [[Int]] -> Int -> [[Int]]
> includes s e		= [x|x<-s, element x e]

elem というPrelude 関数があるのでそれを使いましょう。

includes :: [[Int]] -> Int -> [[Int]]
includes xxs x = [ xs | xs <- xxs, elem x xs ]

(includes の引数の順番は逆にしたほうが使いやすかもしれません)

>  さらに、このincludesを利用して、sの要素のいずれかに整数eが含ま
> れるかどうかを返す関数を、
 
> isIncluded		:: [[Int]] -> Int -> Bool
> isIncluded		= (\s e -> s e /= []).includes

>  でも、この定義中に自分で書いたλ式が何を意味するものか、自分で
> わからなくなってきました(^^;

わからなくなったときは、実際に引数を与える書き方に変えていけば
わかるかも。

isIncluded     = (\s e -> s e /= []).includes
→
isIncluded ls x = ((\ s e -> s e /= []) . includes) ls x
→
isIncluded ls x = (((\ s e -> s e /= []) . includes) ls) x
→
isIncluded ls x = ((\ s e -> s e /= []) (includes ls)) x
→
isIncluded ls x = (\ s e -> s e /= []) (includes ls) x

というわけで、(\ s e -> s e /= []) の最初のλ変数 s は (includes ls)
に束縛されます。2番目の変数 e は x に束縛されます。
 
> 型を調べると、
> 
> Main> :t (\s e->s e /= [])
> \s e -> s e /= [] :: Eq a => (b -> [a]) -> b -> Bool
> 
> となっていて、sが(b->[a])に、eがbに対応するんだろうなぁ、とは
> 思うんですが、includes の型とどうマッチするんでしょう?

s が (includes ls) に束縛されますので、
(a -> [b]) と (includes ls) が対応します。

一方 includes の型は定義から、[[Int]] -> Int -> [[Int]] ですから、
これは、[[Int]] -> (Int -> [[Int]]) と同じですから、
(include ls) の型は、Int -> [[Int]] ですよね。

したがって、a と Int が、b と [Int] がマッチするというわけです。

>  関連して、hugs上でこのλ式を評価してみると
> 
> Main> (\s e -> s e /= [])
> ERROR - Cannot find "show" function for:
> *** Expression : \s e -> s e /= []
> *** Of type    : (a -> [Integer]) -> a -> Bool
> 
> となって、エラーに出力される型が :t で返してくるものと微妙に違い
> ます。特に "[Integer]" と、勝手にIntegerがバインドされている様
> なのですが、これはどういう事なのでしょうか?

hugs が、ちょっと「おばかさん」ということかしらん。ghci でやると、

Prelude> :t 
\ s e -> s e /= [] :: forall t a.
                      (Eq [a]) =>
                      (t -> [a]) -> t -> Bool

Prelude> \ s e -> s e /= []

<interactive>:1:
    No instance for (Show ((t -> [a]) -> t -> Bool))
      arising from use of `print' at <interactive>:1
    In a 'do' expression: print it

となりますね。

--nobsun

--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/