[Haskell]haskellの難しいところ
!だったり#について分からなかったが、ここに行き着いた。勉強になります。これからHaskellを書くにあたって
!だったり#について分からなかったが、ここに行き着いた。勉強になります。これからHaskellを書くにあたって
haskellの文字列扱いで良い記事を見つけた。 Haskell文字列変換入門
Haskellの文字列扱いを少し
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import Codec.Binary.UTF8.String -- str = ["\x0041", "\x3042", "\x57CE", "\x2F852"] str = ["A", "あ", "城", "?"] main::IO() main = do putStrLn "Haskell内部コード" mapM_ print str mapM_ putStrLn str putStrLn "Haskell内部コード>UTF8コード" mapM_ (\x -> print $ encodeString x) str mapM_ (\x -> putStrLn $ decodeString $ encodeString x) str |
出力結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$ ./strsmpl Haskell内部コード "A" "\12354" "\22478" "\194642" A あ 城 ? Haskell内部コード>UTF8コード "A" "\227\129\130" "\229\159\142" "\240\175\161\146" A あ 城 ? |
Haskell内部ではUnicodeスカラ値 …
教科書通りにやってみました。 todo.hs
ディレクトリのリストを出力する。ファイル内容を出力する時と同じ要領で作ることができた。
1 2 3 4 5 6 7 8 9 |
import System.Directory import System.IO main::IO() main = do dirs < - getDirectoryContents "." case dirs of [] -> putStrLn "" _ -> mapM_ (\x -> putStrLn x) [ndirs | ndirs < - dirs, ndirs /= ".", ndirs /= ".."] |
dirsから”.”と”..&# …
haskellをはじてみる。まずはファイルを扱えるようになることから。以下のコードでファイルの内容を出力するプログラムができる。
1 2 3 4 5 6 7 8 9 |
import System.Environment import System.IO main::IO() main = do args < - getArgs case args of args -> getContents >>= putStr _ -> mapM_(\x -> readFile x >>= putStr) args |
getArgsは引数を[ …