splitAtを書いてみろとのことなので、挑戦。勘でwhere節を書いたら一発で動いて一安心*1。
mySplitAt :: Int -> [a] -> ([a], [a]) mySplitAt 0 x = ([], x) mySplitAt _ [] = ([], []) mySplitAt n (x:xs) = (x:a, b) where (a,b) = mySplitAt (n-1) xs
なんつーか、生まれて初めてBASICに触れたときのようなわからなさ。それだけ、毛色が違う言語ってことですね。それがいいか悪いかは別として、新鮮な刺激があって楽しいことは間違いないです(´▽`)。
*1:たぶん省略したりできるので、もっといい書き方を教えなさい>(未来の自分w)