関数型プログラミング言語Haskell Part34 (667レス)
関数型プログラミング言語Haskell Part34 http://mevius.5ch.net/test/read.cgi/tech/1639713446/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
26: デフォルトの名無しさん [sage] 2021/12/31(金) 02:20:27.03 ID:aP8qPSMg シンプルなワードカウント書いたけど関数合成でワードカウントが組めません " ab ccc dd "を[0,1,1,0,1,1,1,0,1,1,0]みたいなリストに変換して ワードの数は3みたいな 以下普通に書いたワードカウント spwc4 :: [Char] -> Int spwc4 s = wc4 s 0 0 where wc4 :: [Char] -> Int -> Int -> Int wc4 [] l c = (c + (if l == 0 then 0 else 1)) wc4 (x:xs) l c | x == ' ' || x == '\t' || x == '\n' || x == '\r' = if l == 0 then wc4 xs 0 c else wc4 xs 0 (c+1) | otherwise = wc4 xs (l+1) c 文字列を chkspand :: Char -> Int chkspand c = if c == ' ' || c == '\t' || c == '\n' || c == '\r' then 0 else 1 に与えて[0,1,1,0,0,1]みたいなリストに変換 これを関数合成でカウントすると内部状態を保持する必要で困惑中 wordcount . map chkspand $ " asas df df" みたいな書き方がしたい http://mevius.5ch.net/test/read.cgi/tech/1639713446/26
27: デフォルトの名無しさん [sage] 2021/12/31(金) 03:53:55.07 ID:aP8qPSMg 自己解決したけどデータが多いとスタックが... >countword . countchars . map chkspand $ " 1313 13 111 rfr fdf" >5 http://mevius.5ch.net/test/read.cgi/tech/1639713446/27
30: デフォルトの名無しさん [sage] 2021/12/31(金) 16:30:35.01 ID:aP8qPSMg >>29 wc5 = let iterator [] = 0 iterator (0:1:xs) = 1 + (iterator xs) iterator (x:xs) = iterator xs in iterator . ((0::Int) :) wc5 . map chkspand $ "0 hushjuh hhuj 89 546456" 5 上手く行きました イテレータのパターンマッチ目からウロコ http://mevius.5ch.net/test/read.cgi/tech/1639713446/30
31: デフォルトの名無しさん [sage] 2021/12/31(金) 20:42:25.11 ID:aP8qPSMg >>30のこれ iterator (0:1:xs) = 1 + (iterator xs) 内部で 1+1+1+1+...が積みあがって最後に計算されるの? http://mevius.5ch.net/test/read.cgi/tech/1639713446/31
33: デフォルトの名無しさん [sage] 2021/12/31(金) 21:10:21.51 ID:aP8qPSMg >>32 了解しました http://mevius.5ch.net/test/read.cgi/tech/1639713446/33
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s