5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

純粋関数型言語Concurent Clean

188 :デフォルトの名無しさん:2005/10/25(火) 23:17:03
// haskellの真似 とか調べたことでも書いてみる
foldrWithReadline:: !(String a-> a) a !*File -> (a, *File)
foldrWithReadline proc knil file
#! (end,file) = fend file
| end = (knil, file)
#! (line, file) = freadline file
# (lines , file) = foldrWithReadline proc knil file
= ((proc (trimNewline line) lines), file)
foldrWithReader:: !(*File->(Bool,a,*File)) !(a b->b) b !*File -> (b, *File)
foldrWithReader reader proc knil file
#! (ok, token, file) = reader file
| not ok = (knil, file)
# (tokens , file) = foldrWithReader reader proc knil file
= ((proc token tokens), file)
foldrWithReadChar:: !(Char a-> a) !a !*File -> (a, *File)
foldrWithReadChar x y z = foldrWithReader freadc x y z

readFile :: !String *World -> ([String],*World)
readFile path wld = callWithInputFile path
(\x -> abort ("readFile :: " +++ path ))
(foldrWithReadline (\x y -> [x:y]) []) wld

readFileChar :: !String *World -> ([Char],*World)
readFileChar path wld = callWithInputFile path
(\x -> abort ("readFileChar :: " +++ path))
(foldrWithReadChar (\x y -> [x:y]) []) wld


90 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)