読者です 読者をやめる 読者になる 読者になる

Haskellで作る奇妙なプログラミング言語 Haskell練習問題②

これの続き。

問3 数を1ずつカウントしていく何かを作ってください。

inc :: Int -> Int
inc c = c + 1

main = do
  print $ inc $ inc $ inc $ inc 0

もともとの問題は、incメソッドを呼び出されるたび数をインクリメントしていくクラスを作れ、なので、副作用を扱わないといけないが、分からんのでお茶を濁す。

問4 自分自身のソースコードを出力するHaskellプログラムを書いてください。

main = do
  str <- readFile "problem4.hs"
  putStr str

こちらは簡単。

$ cat problem4.hs
-- 自分自身のソースコードを出力するHaskellプログラムを書いてください。

main = do
  str <- readFile "problem4.hs"
  putStr str
$ runhaskell problem4.hs
-- 自分自身のソースコードを出力するHaskellプログラムを書いてください。

main = do
  str <- readFile "problem4.hs"
  putStr str

ソースコードは以下。
https://github.com/kawausokun/esoteric-language-in-haskell