練習問題 5.2.3
4.2節で定義されている標準関数splitAtを使って,
divideの(同一ではない)別定義を与えよ.本書における
divideの定義は対象のリストを一度しか辿らないが,別定義ではそのようになっているか.
以下の定義では
lengthを計算するのに1度リストを辿り,
splitAt
でリストを半分のところまで辿る.
divide :: [a] -> ([a],[a])
divide = splitAt . (`div` 2) . length <*> id
splitAtを使って,
divideの(同一ではない)別定義を与えよ.本書における
divideの定義は対象のリストを一度しか辿らないが,別定義ではそのようになっているか.
lengthを計算するのに1度リストを辿り,
splitAt
でリストを半分のところまで辿る.
divide :: [a] -> ([a],[a])
divide = splitAt . (`div` 2) . length <*> id