[過去ログ] 関数型プログラミング言語Haskell Part33 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
3: デフォルトの名無しさん [] 2020/02/10(月)18:18:27.57 ID:L6eYQqyh(3/5)
関連サイト
(英語)
Haskell - Wikibooks, open books for an open world (ページ内に内容をまとめたPDFあり)
https://en.wikibooks.org/wiki/Haskell
Learn You a Haskell for Great Good! (『すごいHaskellたのしく学ぼう!』の無料オンライン版)
http://learnyouahaskell.com/chapters
Real World Haskell (同名書籍の無料オンライン版)
http://book.realworldhaskell.org/read/
(以下、日本語)
Haskell入門 5ステップ - HaskellWiki (公式サイト内、日本語入門セクション)
https://wiki.haskell.org/Haskell%E5%85%A5%E9%96%80_5%E3%82%B9%E3%83%86%E3%83%83%E3%83%97
Haskell - Wikibooks (上記Wikibooksの同タイトル日本語版。多くの項目が未編集)
https://ja.wikibooks.org/wiki/Haskell
A Gentle Introduction to Haskell, Version 98
http://www.sampou.org/haskell/tutorial-j/
Haskell のお勉強
http://www.shido.info/hs/
お気楽 Haskell プログラミング入門
http://www.nct9.ne.jp/m_hiroi/func/haskell39.html
本物のプログラマはHaskellを使う
http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248215/
[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!
http://gihyo.jp/dev/feature/01/functional-prog
38: デフォルトの名無しさん [sage] 2020/02/15(土)23:05:59.57 ID:zVmjMtcZ(1)
>>24
「読みにくい」ではなくて「詠みにくい」かw
77: デフォルトの名無しさん [sage] 2020/03/27(金)12:07:06.57 ID:gM1jKcLP(2/6)
>>76
もう少し詳しくたのむ
評価順序を考えたらどうして命令列になんの?
525: デフォルトの名無しさん [] 2020/10/31(土)12:34:33.57 ID:fxcwqRC2(1)
この木なんの木きのこる木
553: デフォルトの名無しさん [sage] 2020/11/02(月)23:56:16.57 ID:Zq9JUsOb(1)
>>552
元は別スレに出てた問題で
「与えられた文字列の中で“trickと"treat”どっちが先に出てくるか判定せよ」
なんです
とりあえずparserを与える関数として
makeP = mconcat . map ( manyTill anyChar . char )
でできました
コレを例えば"abc"にapplyするとmtl = manyTill、ac=anyCharとして
(mtl ac $ char 'a') <> (mtl ac $ char 'b') <> (mtl ac $ char 'c'>
というparserになりコレにhiajklbcnという文字列をparseするとhijklとabcが出現するするまでに読み飛ばした文字列を返してくれます
それでお題の答えとしてparseの結果を
lastInd x s = case ( runParser ( makeP x ) () "" s ) of
Left _ -> ( [ 2, 0 ] , x )
Right y -> ( [ 0, length $ x ++ y ], x )
のようにしてlengthで数えたんです
しかしちょっと冗長なかんじがします
そもそも読み飛ばした文字列なんか欲しいわけではなく読み飛ばした文字数が欲しいだけだからほんとは
Parser String 型ではなく例えば
length <$> ( manyTill anyChar ( char 'x')
とかのParser Intで十分です
問題はコレをどうやって繋げて総和を返すコンビネータを作ろうかというところなんです
Parser Stringはmonoid型を持ってるのでmconcat一発で繋げられるんですがParser IntはNum持ってないのでsum一発で繋げるというわけにはいかないんです
なんとかできないかと探してみるとなんか「Numをderivingする」という記事を見つけて、お、コレでいけないかと色々やってみたんですがやはりParser Intにderiving一髪でNum入れる方法見つからなくてなんとかならんもんかと
571: デフォルトの名無しさん [sage] 2020/11/12(木)23:16:18.57 ID:G64JuFLE(1)
⊥になるものでいいじゃん
576: デフォルトの名無しさん [] 2020/11/21(土)23:31:14.57 ID:ak7brOTq(1)
Haskellはライブラリの中身を覗くと
Template Haskellを駆使した
グッチャグチャの実質別言語みたいなコードがザラなのがなぁ・・・
水面下の白鳥状態じゃねーか
577: デフォルトの名無しさん [sage] 2020/11/22(日)16:59:26.57 ID:gt3QNmmg(1)
ゴミライブラリ使うのやめて良いやつ作って公開してくれ
676: デフォルトの名無しさん [sage] 2021/01/22(金)02:27:11.57 ID:XLcorGPG(1)
欲しかったHaskell
・型を最大限に活用、バグが無いことを保証しつつ自然にC言語並みの性能も出る
745(1): デフォルトの名無しさん [sage] 2021/02/17(水)14:02:08.57 ID:YPZ4jTJ4(1)
map f [1,1,1,2]のように重複の多いリストがあったら
fの実装を変える勢力とリストの構造を変える勢力の争いをどうやって解決できるか気になる
779: 768 [sage] 2021/03/20(土)12:05:15.57 ID:WUxvQvbt(1)
>>778
ありがとうございます
こちらこそ、たびたびすみません
マンガのセリフのことを「ネーム」というらしいので、書いた字面をいうのかなと考えたり
name を和英・英英辞典で調べても、結局しっくりきませんでした
スレ汚しすみませんでした
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s