私はHaskellに少し慣れていませんが、この振る舞いは私には奇妙です。次のように定義された単純な関数がある場合:
foobar :: Integer -> [Integer] -> Integer
foobar x y = case y of
(a:x:b) -> x
_ -> -1
基本的に、yに少なくとも2つの要素が含まれ、yの2番目の要素がfoobarの最初の引数である場合、関数はfoobarの最初の引数に評価されるはずです。それ以外の場合は-1を取得します。しかし、ghciでは:
foobar 5 [6,7]
-1ではなく7をくれます。
この動作をどのように理解しますか?