1. 「リストの要素を取得する」関数を例として、クラスの拡張を考える Lisp でリストの先頭要素を得る関数は car 。先頭以外の残りの要素を取得するには cdr 。 (car '(1 2 3 4 5)) => 1 (cdr '(1 2 3 4 5)) => (2 3 4 5) ( cf. CAR and CDR – Wikipedia ) Haskell で上記に相当する関数は、 head tail 類似した対照的な関数に init last がある。 main = do let xs = [1..5] print $ head xs -- 1 print $ tail xs -- [2,3,4,5] print $ init xs -- [1,2,3,4] print $ last xs -- 5 これらの関数名を、他の言語でも使えるように、拡張の方法をそれぞれ見ていく。 2. Ru