はじめてのはすける

ダレモイナイ・・・
ハスケルスルナライマノウチ・・・

module Main (main) where
import Array

main :: IO()
main = do line <- getLine
          (putStr.show.fib.str2int) line

fibs :: Integer -> Array Integer Integer
fibs n = a where
         a = array (0,n) ([(0,1),(1,1)] ++
                          [(i, a!(i-2) + a!(i-1)) | i <- [2..n]])

fib :: Integer -> Integer
fib n = (fibs n)!(n)

project1st :: (a1, a2) -> a1
project1st (first, second) = first

str2int :: String -> Integer
str2int str = (project1st.head.reads) str

とりあえず適当に遊んでみた第一感としては「IO周り(というかモナドとかいうやつ)がよーわからん」.しかし,面白いのは確か.