haskell

ふつうのHaskell - 11章演習

tabStop = 8 main = getContents >>= putStr . expand expand :: String -> String expand cs = concatMap expandTab cs expandTab :: Char -> String expandTab '\t' = replicate tabStop ' ' expandTab c = [c]

入門 Haskell 練習問題 1.6

1. wordScan を使って inQuote を再実装 wordsCount str = outWords str where outWords str = wordScan (\n -> 1 + n) str inWords str = wordScan id str inQuote (c:cs) | c == '\'' = outWords cs | otherwise = inQuote cs wordScan f [] = 0 wordScan …

入門 Haskell 練習問題 1.5

1. 空白行を数えない linesCount linesCount str = linesFirst str where linesFirst [] = 0 linesFirst (c:cs) | c == '\n' = linesFirst cs | otherwise = linesLast cs linesLast [] = 0 linesLast (c:cs) | c == '\n' = 1 + linesFirst cs | otherwise =…

Haskell勉強会#5.1

昨日に引き続き、今日は Lingr 上でぷち勉強会。基本的には、昨日来てた人は続きを、これなかった人はコーディングで使った課題に挑戦、という感じだった。私は、昨日のピラミッドの続きをうにゃうにゃと。中途半端だった、引数を数字で受けとる方法を教えて…

スタバで自由課題

全員で昼のカレーを食べた後、興にまかせてスタバでさらにコード書きをしてみた。「ピラミッドが一行で書けたー」というのを聞いて、お、それなら一行はともかくいけるかも? と思って、ピラミッドに挑戦。こういうのを表示させたい: * *** ***** ******* …

ふつうのHaskell - 6章演習

お題は、「受けとったテキストを 60 文字で改行するプログラム」。いやー、面白かった。仕上がったのは時間ギリギリだったし、気の利いた処理を書いたわけでもないんだけど、やっぱ思ったように動かせるとクるものがあるねぇ。私的には今日の目玉はコード書…