豊福です。

nobsunさん
[haskell-jp:96] Re: tail n
> tailn :: Int -> [a] -> [a]
> tailn n ls = difftail ls (drop n ls)
>   where difftail hs []         = hs
>         difftail (_:hs) (_:ts) = difftail hs ts

の変数外しを目指し

  tailn n ls = foldl (const.tail) ls (drop n ls)

まで変形してはたと困ってしまいました。
引数をコピーする関数ってありましたっけ。
Sコンビネータ
  s = \ x y z -> x z (y z)
を使うと

  tailn = s (foldl (const.tail)) . drop

と書けるんですが、こういうときに使える標準の関数ってありますか。
---
                        豊福
                        nobu_toyofuku / nifty.com


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