関数型プログラミング言語Haskell Part34 (667レス)
関数型プログラミング言語Haskell Part34 http://mevius.5ch.net/test/read.cgi/tech/1639713446/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
14: デフォルトの名無しさん [sage] 2021/12/21(火) 06:55:32.78 ID:t7n7AMl6 a :: Int -> Int a 0 = 50^2 a n = round (sqrt (realToFrac n):: Float) 型変換なみだでてきた ghciプロンプトだと round (sqrt 50) 7 ちゃんと出るじゃねーか... http://mevius.5ch.net/test/read.cgi/tech/1639713446/14
15: デフォルトの名無しさん [] 2021/12/21(火) 10:17:23.12 ID:WtPb4PP+ >>6 酷すぎる http://mevius.5ch.net/test/read.cgi/tech/1639713446/15
16: デフォルトの名無しさん [sage] 2021/12/21(火) 11:09:52.33 ID:+QFtbkZ1 >>14 ghci 上で :t round . sqrt として a :: Int -> Int との違いを比べてみるとよいよ (あとリテラルの50はIntではない) 数(特に浮動小数点数)まわりの関数でなみだ出てくるのは多少同意 http://mevius.5ch.net/test/read.cgi/tech/1639713446/16
17: デフォルトの名無しさん [] 2021/12/21(火) 15:10:59.44 ID:XC3saJz0 >>6 こ、これはもしや・・・・あの!? http://mevius.5ch.net/test/read.cgi/tech/1639713446/17
18: デフォルトの名無しさん [] 2021/12/23(木) 17:28:45.18 ID:iaSGtOUq ken80297274 岡部さんのサブアカウント発見 http://mevius.5ch.net/test/read.cgi/tech/1639713446/18
19: デフォルトの名無しさん [] 2021/12/23(木) 20:30:31.33 ID:hyDq6lCn どんな人生を生きたら実名でこんな攻撃的な調子でtwitter上で不特定多数に絡みに行こうと思えるんだ 実際実社会で会ったらどんな感じの人なんだろう http://mevius.5ch.net/test/read.cgi/tech/1639713446/19
20: デフォルトの名無しさん [] 2021/12/23(木) 21:25:57.12 ID:cmpFYqPS 岡部健さんはアメリカのUCLA卒業と書いていたらしいので、情報技術の素養はあるんじゃないか? https://twitter.com/ohagiya/status/226163166067949568 http://archive.ph/1oA1C >>「まああれでUCLAとかよく嘘こけるよねー。 」 >とは、これも、僕が学歴詐称しているという野田憲太郎の妄想にはじまる >「バッシングに用いる好物のネタ」であり、もちろんそのような学歴詐称の事実などないし、それも名誉毀損として刑事告訴の要件に入っている。 https://twitter.com/5chan_nel (5ch newer account) http://mevius.5ch.net/test/read.cgi/tech/1639713446/20
21: デフォルトの名無しさん [] 2021/12/23(木) 21:27:02.59 ID:cmpFYqPS Twitterで ohagiya UCLA で検索すると岡部健さんの学歴にけちを付けてる人が出てくるね http://mevius.5ch.net/test/read.cgi/tech/1639713446/21
22: デフォルトの名無しさん [] 2021/12/23(木) 23:57:52.67 ID:MjSWMWRR ハリウッド映画でよくある、酒場でのウィットに富んだ大人の会話の一種では? 0時を過ぎると、酒瓶を割って拳で語り合う・・・いまその状態では? 夜が明けると、互いを理解し絆が深まる。 そして生涯の友となるのでは? http://mevius.5ch.net/test/read.cgi/tech/1639713446/22
23: デフォルトの名無しさん [] 2021/12/27(月) 09:38:29.17 ID:hZ17KgJk https://ken-okabe .hatenablog .com/entry/2021/12/20/134121 『結局は、あろうことか、当時のQiita運営がこういう匿名炎上目的のアカウントの思惑に乗っかる形で、僕の反論コメントを消してしまったので』 と書いてるので、当時nonstarterさんの記事のコメント欄に出没していたのは岡部健本人だったのかな。 ことあるごとに「岡部氏」って別人のように書いてたのにね http://mevius.5ch.net/test/read.cgi/tech/1639713446/23
24: デフォルトの名無しさん [] 2021/12/28(火) 01:15:18.08 ID:e4meyx5L 高度IT人材、富士通は最大年収3500万円へ 「富士通年収3500万!」日本のIT企業の年収も、高額化してきました AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ 【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材 来年度から副業解禁 人材多様化へ―大同生命次期社長 副業・兼務の解禁から4年、ロート製薬流で進めるキャリア支援 ロート製薬が副業をいち早く導入した「超人間的」な理由 ロート製薬会長が「副業を受け入れない会社は発展しない」と断言する理由 http://mevius.5ch.net/test/read.cgi/tech/1639713446/24
25: デフォルトの名無しさん [] 2021/12/28(火) 08:27:45.42 ID:FaceSKSV https://mobile.twitter.com/matusita2012/status/172883696091791361 https://twitter.com/5chan_nel (5ch newer account) http://mevius.5ch.net/test/read.cgi/tech/1639713446/25
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
28: デフォルトの名無しさん [sage] 2021/12/31(金) 14:45:34.52 ID:KqmzC1Ir リストみたいなただのデータコンストラクタだったら、いくら長くてもスタック関係ないのに リストをfoldrしたような物が出てくるとスタックでみんな躓く http://mevius.5ch.net/test/read.cgi/tech/1639713446/28
29: デフォルトの名無しさん [] 2021/12/31(金) 14:58:51.96 ID:bqUePCKa スクラッチで書くなら(0:)で0を追加して(0:1:_)をカウントしていくんだろうな chkspand :: Char -> Int chkspand c = if c == ' ' || c == '\t' || c == '\n' || c == '\r' then 0 else 1 wordcount = let iterator [ ] = 0 iterator ( 0: 1: xs ) = 1 + ( iterator xs ) iterator ( x : xs ) = iterator xs in iterator . ( 0 : ) main = do print $ map chkspand $ " asas df df" print $ wordcount . map chkspand $ " asas df df" http://mevius.5ch.net/test/read.cgi/tech/1639713446/29
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
32: デフォルトの名無しさん [] 2021/12/31(金) 20:58:03.01 ID:bqUePCKa >>31 それは処理系のimplement依存だから一概には言えないけど多分stack上に(1+)関数が乗っていって最後に確定した0が入ってから計算しそうな気がする http://mevius.5ch.net/test/read.cgi/tech/1639713446/32
33: デフォルトの名無しさん [sage] 2021/12/31(金) 21:10:21.51 ID:aP8qPSMg >>32 了解しました http://mevius.5ch.net/test/read.cgi/tech/1639713446/33
34: デフォルトの名無しさん [sage] 2022/01/02(日) 20:44:02.99 ID:OOMiLRw0 >>30ちょと改変 wc6 = let iter n [] = z iter n (False:True:xs) = let n' = n + 1 in seq n' $ iter n' xs iter n (x:xs) = iter n xs in (iter 0) . (False :) wcc = wc6 . map chkspand2 これのseq n'が効けば+1+1+1+1が積みあがらないはず http://mevius.5ch.net/test/read.cgi/tech/1639713446/34
35: デフォルトの名無しさん [sage] 2022/01/02(日) 21:09:40.82 ID:OOMiLRw0 ghciで確認 >>30はスタックオーバーフローで止まった >>34は止まらないからctr-Cで止めた http://mevius.5ch.net/test/read.cgi/tech/1639713446/35
36: デフォルトの名無しさん [sage] 2022/01/03(月) 00:17:58.15 ID:eS7vipFo OOPでも、整数を他のオブジェクトとは全然違う形式にしないと 計算が遅過ぎてダサくなるよね 逆にオブジェクトの方を整数と同じようなGC非依存みたいな構造にする手もあるか http://mevius.5ch.net/test/read.cgi/tech/1639713446/36
37: デフォルトの名無しさん [] 2022/01/03(月) 08:08:25.82 ID:hLrwvjQQ まぁコレは趣味による Haskellでは性能面より可読性を重視するからな それも使う人次第だけど >>34のようにすればメモリも時間も節約できるけど可読性は失われる どこまで我慢するかだけどオレは計算時間もメモリも線形までなら我慢して可読性を重視する >>34だと入力に比例して要求されるスタック量が増える 線形までならしょうがないと思う どのみち入力が大きくなるにつれてシステムが大きくなるのは元々しょうがないんだしその時の比例定数の違いまでなら我慢する 今具体的にやりたいことがあってその線形オーダーの無駄すら許されない状況なら考えるけど http://mevius.5ch.net/test/read.cgi/tech/1639713446/37
38: デフォルトの名無しさん [sage] 2022/01/03(月) 11:20:12.64 ID:TEX8BSo6 >>37 今回のお題はワードカウント、ファイルサイズがギガになる場合を想定 スタックなりヒープなりを消費しない手法は?です Cなどで実装した場合、ループでカウントして再帰なしスタックもヒープも消費なしとか(可読性は...) 他にマルチスレッドで分割カウントした時の手法とか(ディスクのIOで律速か) http://mevius.5ch.net/test/read.cgi/tech/1639713446/38
39: デフォルトの名無しさん [] 2022/01/03(月) 12:59:34.38 ID:hLrwvjQQ 今回の場合1ワード消費するたびにスタック一個消費するから必要なメモリリソースが倍以上になる可能性もあるから意味はあるかな 特にコレは>>34の方法だと必要なメモリリソースがデータ保持する分を除けばlogオーダーになるからな しかも読み込んだデータは順次捨てていけるし(そこまでのカウント結果を保持しないといけないので有限オートマトンでは無理だけど有限オートマトン以上、チューリング完全以下、こういう計算クラスは名前ついてるのかな?) 個人的にはこういうときメモリ線形、時間線形までは許さないと大した事できないことが多いのでそれ以上のこだわりは持たないようにしてる 数学的研究対象とかにするなら別だけど http://mevius.5ch.net/test/read.cgi/tech/1639713446/39
40: デフォルトの名無しさん [sage] 2022/01/03(月) 15:29:08.17 ID:TEX8BSo6 >>39 今回なにを確認したのか それは、Cで組むような単純繰り返しを同じ感覚でヒャッハーとhaskellの遅延評価で行うと ヤバイと言う教訓とそれを回避する手法 http://mevius.5ch.net/test/read.cgi/tech/1639713446/40
41: デフォルトの名無しさん [] 2022/01/04(火) 16:11:04.31 ID:h755Av8k Haskellを身に付けた人は他の言語も使えると予想しますが、いくつもの言語の中からHaskellを選んで プログラムを書くのはどんな課題、問題を解決したいときなんでしょうか http://mevius.5ch.net/test/read.cgi/tech/1639713446/41
42: デフォルトの名無しさん [sage] 2022/01/04(火) 16:44:18.80 ID:HuVGMWib 課題が「ガベージをコレクトしたい」だけだったとしても じゃあ静的型は不要だとかジェネリクスは不要だとはならない だから課題と関係ない部分を作り込む http://mevius.5ch.net/test/read.cgi/tech/1639713446/42
43: デフォルトの名無しさん [] 2022/01/05(水) 10:28:01.47 ID:imDyM2+l Twitterの検索で @ohagiya @kenokabe と入れると楽しいよな http://mevius.5ch.net/test/read.cgi/tech/1639713446/43
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 624 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s