関数型プログラミング言語Haskell Part34 (692レス)
関数型プログラミング言語Haskell Part34 http://mevius.5ch.net/test/read.cgi/tech/1639713446/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
135: デフォルトの名無しさん [] 2022/10/07(金) 20:15:05.17 ID:xpYSJYo6 F#では。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/135
136: デフォルトの名無しさん [] 2022/10/07(金) 20:28:34.11 ID:lAeL408c Erlang http://mevius.5ch.net/test/read.cgi/tech/1639713446/136
137: デフォルトの名無しさん [sage] 2022/10/14(金) 22:28:23.68 ID:GVf4qcGD ラムダや <- や case で束縛される変数の値は二回以上計算されない seqは計算のタイミングを変える効果しかない 難しいのは = で定義される名前だが = の右辺で頑張ってseqを使っても報われない http://mevius.5ch.net/test/read.cgi/tech/1639713446/137
138: デフォルトの名無しさん [sage] 2022/10/14(金) 23:54:06.57 ID:91YiMGAd でもhaskell 2010 reportには評価順を変える方法はseqしか規定されていない GHQなどの実際の処理系でそれ以外のタイミングでメモ化されたりするのはあくまで処理系の独自仕様でしかない ある処理系でメモ化されて早かったプログラムが別の処理系で同じ速度で処理してくれる保証などどこにもない http://mevius.5ch.net/test/read.cgi/tech/1639713446/138
139: デフォルトの名無しさん [sage] 2022/10/15(土) 08:05:01.19 ID:/BlEbfcm >>138 もしかして、個人の感想のようなものを悪と思ってるのかね そして客観的事実 (ようするに絶対正しい事実) と称するものが正義だと 個人の感想を排除するべきという思想はどこにも規定されてないでしょ http://mevius.5ch.net/test/read.cgi/tech/1639713446/139
140: デフォルトの名無しさん [sage] 2022/10/15(土) 09:49:59.76 ID:fUoifk8c メモ化に関しては俺も>>138と同じような感想持ってるな http://mevius.5ch.net/test/read.cgi/tech/1639713446/140
141: デフォルトの名無しさん [sage] 2022/10/15(土) 10:11:19.74 ID:/BlEbfcm ある人の感想が別の人の感想と同じになる保証はどこにもない 保証がなくても特に問題ないと判明したならそれでいい http://mevius.5ch.net/test/read.cgi/tech/1639713446/141
142: デフォルトの名無しさん [sage] 2022/10/15(土) 10:19:45.48 ID:+yYiQ+MP 一番嫌なのはネットに転がってるすごいスッキリしたプログラムがあって「おお、すげぇ」と思っても結局それはGHCのメモ化の恩恵でしかなくHaskell本来のそれではないので別の処理系では通用しないものであったりする事 事実上GHCが標準なのでGHCで早ければ「早いプログラムが書けない事はない」のではあるけど、じゃあGHCはどんな時は気をきかせてメモ化してくれるのか、どんな時はその事を利用して早い、しかし短い、わかりやすいプログラムを書けるのかはHaskell 2010
reportではなくGHCの方の仕様書を読むか、実験してみるかしかない、しかし前者はそもそもGHCの仕様書そのものどこにあるかわからないんだけど見つけてもおそらくメモ化の理論は相当に難しい論文レベルの話、さりとて実験で詰めていくのはデバッグと同じレベルのかなり苦痛な作業で、しかも完成したものは大概速さのために可読性をかなり犠牲にしないといけないものになる、当然可搬性も落ちてる GHCがやってくれてる事全てでなくてもいいけどネットによく転がってるフィボナッチ数列とか素数生成とかのGHCの良きに計らってくれる機能を利用したスッキ
リした、けど早いプログラムくらいまでは標準化して全ての処理系で動くようにしてほしいけどね http://mevius.5ch.net/test/read.cgi/tech/1639713446/142
143: デフォルトの名無しさん [sage] 2022/10/15(土) 11:46:05.26 ID:fUoifk8c まあ実際のところメモ化を考え出したら Lispと同じように可読性を犠牲にした速度重視のコードしか生まれないので・・ メモ化は考えないのが筋だけどそうすると実用性は皆無であってつまり http://mevius.5ch.net/test/read.cgi/tech/1639713446/143
144: デフォルトの名無しさん [sage] 2022/10/15(土) 15:59:55.52 ID:/BlEbfcm LispとHaskellの違いで重要なのは モジュールの定義をインタラクティブにやらないこと ghci起動時に全てのモジュールが定義され最後に mainや他の式を評価・実行するところだけがインタラクティブ そもそもmodule Main whereとかいうのは式ではない 式ではないから評価順序という考え方がそこでは通用しない http://mevius.5ch.net/test/read.cgi/tech/1639713446/144
145: デフォルトの名無しさん [sage] 2022/11/03(木) 00:12:52.63 ID:A4mGU1Ql GHCがデファクトだしこだわりがなければ他のコンパイラを使うこともないでしょ とはいえ関数型言語って速度を重視するタスクには向かないでしょ 速さを求めるのが間違い http://mevius.5ch.net/test/read.cgi/tech/1639713446/145
146: デフォルトの名無しさん [sage] 2022/11/03(木) 01:14:31.73 ID:+2fbLBnA Symbolicsが失敗した事例を思い出す あれも理想を追求したはいいけど何をやってもひたすら遅く 他社はそれより早く安い機材を次々と繰り出していた 当然惨敗は必然だった http://mevius.5ch.net/test/read.cgi/tech/1639713446/146
147: デフォルトの名無しさん [sage] 2022/11/03(木) 06:02:33.84 ID:A4mGU1Ql 静的な型付けによる頑健性だとrustがあるしなぁ http://mevius.5ch.net/test/read.cgi/tech/1639713446/147
148: デフォルトの名無しさん [sage] 2022/11/03(木) 11:53:42.15 ID:k32TY8HF 結局のところHaskellの言語策定をしてるコミュニティは学者さんのコミュニティで実用的な性能を向上させる事にそもそも興味ないから実務面での有用性を期待するのは無理やね http://mevius.5ch.net/test/read.cgi/tech/1639713446/148
149: デフォルトの名無しさん [sage] 2022/11/04(金) 01:33:00.25 ID:ggdePY4U まあそうだろうな http://mevius.5ch.net/test/read.cgi/tech/1639713446/149
150: デフォルトの名無しさん [sage] 2022/11/05(土) 10:09:23.49 ID:nyx0vuE5 >>142 の指摘って他の言語のGCにもそのまま当てはまると思う。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/150
151: デフォルトの名無しさん [] 2022/11/06(日) 14:53:18.67 ID:p6fV7yyc Haskellで開発している会社ってどこがあるの? 検索するとHERPやTuruCapitalしか出てこない… http://mevius.5ch.net/test/read.cgi/tech/1639713446/151
152: デフォルトの名無しさん [] 2022/11/06(日) 16:00:47.05 ID:8Hp8Ymz2 GHC9.4.3 リリース http://mevius.5ch.net/test/read.cgi/tech/1639713446/152
153: デフォルトの名無しさん [sage] 2022/11/06(日) 16:35:55.22 ID:MgGeIf3l Haskell wikiに載ってるやつ見るに、部分的にHaskellを使うって感じかなぁ http://mevius.5ch.net/test/read.cgi/tech/1639713446/153
154: デフォルトの名無しさん [sage] 2022/11/06(日) 18:08:25.72 ID:SOHxH3HV >>151 一時期富士通が募集してたことがあったような もうないからやめたのだろうけど http://mevius.5ch.net/test/read.cgi/tech/1639713446/154
155: デフォルトの名無しさん [] 2022/11/06(日) 19:47:21.37 ID:p6fV7yyc あと朝日ネットの募集要項はHaskellがありました 朝日ネットに応募してみようかなぁ。 HERPはリファレンスチェックが面倒…(上司とかと会話したくない) http://mevius.5ch.net/test/read.cgi/tech/1639713446/155
156: デフォルトの名無しさん [sage] 2022/11/07(月) 00:00:47.60 ID:35GjxAYG facebookも使ってた気がする。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/156
157: デフォルトの名無しさん [] 2022/11/07(月) 00:41:59.56 ID:aVSF4vDw Haskellの求人、あまり見つからないんですが、言語として微妙な感じなんでしょうか…? HaskellでできることはPython、Java、Go、Scalaでできる、みたいな… あえてHaskellを使う意味がない、みたいな… http://mevius.5ch.net/test/read.cgi/tech/1639713446/157
158: デフォルトの名無しさん [sage] 2022/11/07(月) 11:14:09.19 ID:uMWKgAVp オーバーヘッドを気にせず頑健性を取りたいとき うーん、具体例が出てこない http://mevius.5ch.net/test/read.cgi/tech/1639713446/158
159: デフォルトの名無しさん [sage] 2022/11/07(月) 12:17:58.82 ID:y2qdzeiV >>157 > Haskellの求人、あまり見つからないんですが、言語として微妙な感じなんでしょうか…? > HaskellでできることはPython、Java、Go、Scalaでできる、みたいな… > あえてHaskellを使う意味がない、みたいな… かきか http://mevius.5ch.net/test/read.cgi/tech/1639713446/159
160: デフォルトの名無しさん [sage] 2022/11/07(月) 12:18:26.38 ID:y2qdzeiV 誤操作スマソ http://mevius.5ch.net/test/read.cgi/tech/1639713446/160
161: デフォルトの名無しさん [sage] 2022/11/08(火) 09:36:33.50 ID:VjMrXhSs 消費者目線ではGHCはフリーソフトだからコストが高いとは言えない コストという物差しが万能ではない具体例がいま出た http://mevius.5ch.net/test/read.cgi/tech/1639713446/161
162: デフォルトの名無しさん [sage] 2022/11/09(水) 01:51:03.18 ID:3Bh922De まあ学者さんたちのお遊びだからね・・ http://mevius.5ch.net/test/read.cgi/tech/1639713446/162
163: デフォルトの名無しさん [sage] 2022/11/09(水) 10:38:48.12 ID:wL144bz5 どういう結果になるのか契約とか誓約しないのがオープンソース お遊びにしかならないという保証もしてない http://mevius.5ch.net/test/read.cgi/tech/1639713446/163
164: デフォルトの名無しさん [sage] 2022/12/02(金) 14:29:56.51 ID:fOU9+Fqp Haskellまだイキテル? http://mevius.5ch.net/test/read.cgi/tech/1639713446/164
165: デフォルトの名無しさん [sage] 2022/12/03(土) 12:50:06.92 ID:HJhX36nM 無生物であることは保証する 何も実験してないのに保証することを数学的と言えないこともない http://mevius.5ch.net/test/read.cgi/tech/1639713446/165
166: デフォルトの名無しさん [] 2022/12/12(月) 16:34:32.76 ID:Yq3RU8vo Unreal Verse https://simon.peytonjones.org/assets/pdfs/haskell-exchange-22.pdf サイモンさんが関わってるからHaskellの弟分なのかな? unreal engineに採用なら関数型プログラミングでは 一番使われることになるんだろうか http://mevius.5ch.net/test/read.cgi/tech/1639713446/166
167: デフォルトの名無しさん [sage] 2022/12/13(火) 21:33:17.94 ID:s5AI7uvQ ちょっとやってみるかと思ったら 今はHIEじゃなくてHLS使えみたいなのがぼちぼち出てくるが じゃあHLSをemacsからどう利用すりゃいいのってなると情報なし どうなってんのよ haskell-modeなんて2016で止まってるし http://mevius.5ch.net/test/read.cgi/tech/1639713446/167
168: デフォルトの名無しさん [] 2022/12/15(木) 08:50:05.16 ID:hYy+q+Gy >>166 10年越しのビジョン実現で胸熱 https://pc.watch.impress.co.jp/docs/column/kaigai/555239.html >プレゼンテーションを見ると、Sweeney氏はゲームコードを走らせるプラットフォームが超並列化して行くことを予見し、Unrealの場合は80%のCPUユーセージを並列化が可能だと語っている。また、(ソフトウェア)トランザクショナルメモリや、プログラミングには関数型言語(例としてHaskellを挙げていたが、同時にHaskellに好ましくない点もあると説明している)がフ
ィットすることなどを語っている。 それにしてもSPJを引き抜くなんてゲーム業界はすごい http://mevius.5ch.net/test/read.cgi/tech/1639713446/168
169: デフォルトの名無しさん [] 2022/12/15(木) 11:15:36.01 ID:3Q63kYiw いや15年越し https://game.watch.impress.co.jp/docs/20080911/epic.htm >Sweeney氏は純粋関数型言語のもつ並列処理安全性に着目しており、将来的にゲームプログラミングはそういった処理系に移行していくべきだとした。Sweeney氏はそのひな形として言語“Haskel”を挙げているが、ゲーム開発のメインストリームたり得る言語はまだ登場しておらず、将来に期待しているという。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/169
170: デフォルトの名無しさん [] 2022/12/17(土) 23:16:08.75 ID:7V76W+iX HaskellでWebシステムのバックエンドを開発したときのメモリ使用量は GoやPythonと比較してどの程度でしょうか?多いですか?少ないですか? http://mevius.5ch.net/test/read.cgi/tech/1639713446/170
171: デフォルトの名無しさん [sage] 2022/12/23(金) 15:37:27.80 ID:Rf1vHPUu サーバとクライアントのサンプルプログラムを練習で書いたのだけど toSend <- T.getLine sendAll sock (E.encodeUtf8 toSend) 日本語文字列を出力するのにByteStringを経由しなきゃいけない もしかして任意の型でやりとりがしたいとき 自分でByteStringにパック&アンパックしなきゃいけない? 多分、C言語のFFIがベースになってるからこんな風になってるんだよね? http://mevius.5ch.net/test/read.cgi/tech/1639713446/171
172: デフォルトの名無しさん [sage] 2022/12/23(金) 20:44:32.65 ID:Gou4DLut >>171 明示的に変換しなきゃいけないのは事実だがその原因はC言語じゃない 言語と無関係だからこそHaskell2010でもC言語でも同じデータ構造が使える >>170 データだけ見ればメモリ使用量を同じにすることは可能 http://mevius.5ch.net/test/read.cgi/tech/1639713446/172
173: デフォルトの名無しさん [sage] 2022/12/29(木) 17:00:27.04 ID:ZBF5EoRT モノイド、関手は習得できたけど 自然変換で躓いてる http://mevius.5ch.net/test/read.cgi/tech/1639713446/173
174: デフォルトの名無しさん [sage] 2022/12/29(木) 23:24:37.93 ID:pM4wQIt0 今haskellでguiを作るなら何がいい? できれば低レベル層のライブラリは使いたくないけど wxはもうめんてされてない fugets?threepenny?webviewhs?どれもarchのパッケージにない 実用言語としてhaskellを使いたいのに使えないのばかりで悲しい http://mevius.5ch.net/test/read.cgi/tech/1639713446/174
175: デフォルトの名無しさん [sage] 2022/12/30(金) 12:18:58.51 ID:/hxsvxNk ところでwxHaskellが流行らないのはなぜ? wxが流行ってないからかな? http://mevius.5ch.net/test/read.cgi/tech/1639713446/175
176: デフォルトの名無しさん [sage] 2022/12/30(金) 13:53:40.82 ID:FXsz7+hW 本当に必要なのはドリルの大量生産ではなくドリルでもなく穴だからかな http://mevius.5ch.net/test/read.cgi/tech/1639713446/176
177: デフォルトの名無しさん [sage] 2022/12/30(金) 19:21:21.60 ID:dTZ5gB6H Haskellはすでに見放されてる感ある http://mevius.5ch.net/test/read.cgi/tech/1639713446/177
178: デフォルトの名無しさん [] 2023/01/02(月) 01:15:52.75 ID:jETc9FsM >>177 そうなの?それは実務的な意味で? http://mevius.5ch.net/test/read.cgi/tech/1639713446/178
179: デフォルトの名無しさん [] 2023/01/02(月) 03:01:15.30 ID:/m9PT5PE ステマが酷すぎた。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/179
180: デフォルトの名無しさん [] 2023/01/02(月) 03:01:59.29 ID:/m9PT5PE 言いなおそう。 某出版社のステマが酷すぎた。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/180
181: デフォルトの名無しさん [] 2023/01/03(火) 00:10:20.46 ID:7mh2KVDC 見放されるようになったのは、 モナドってなに?というミステリアスで興味深い問いがいつのまにか 白けた話になったからじゃないか。もうどうでもいいというか。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/181
182: デフォルトの名無しさん [] 2023/01/03(火) 04:29:29.65 ID:yYGSV1g6 技術評論社のせいでは? http://mevius.5ch.net/test/read.cgi/tech/1639713446/182
183: デフォルトの名無しさん [sage] 2023/01/04(水) 05:08:58.65 ID:peYJ5uzH メンテナーが次々と逃げ出してるのが象徴的・・ わかりやすいコードを書くとすこぶるパフォーマンス悪いし だからといって頑張ると一体これは何をしたいのだってなる 遅延評価がデフォルトなのも非常にまずいし 正格評価と切り分けて結局は書かなければならずまだまだ発展途上だと感じる いっそのこと正格評価はなしとした方がいっそ清々しい http://mevius.5ch.net/test/read.cgi/tech/1639713446/183
184: デフォルトの名無しさん [] 2023/01/04(水) 18:10:50.86 ID:HUTbVNXS PureScriptに移行しようぜ 正格評価で使いやすいし http://mevius.5ch.net/test/read.cgi/tech/1639713446/184
185: デフォルトの名無しさん [sage] 2023/01/05(木) 03:59:19.12 ID:PBBtO4Nd しかし無限数列とか表現できなくなるのがなぁ http://mevius.5ch.net/test/read.cgi/tech/1639713446/185
186: デフォルトの名無しさん [sage] 2023/01/05(木) 12:24:48.41 ID:dQdtWkz5 あんなもの現実には扱えないからな 適当な数値を上限にしとけばいいだけ http://mevius.5ch.net/test/read.cgi/tech/1639713446/186
187: デフォルトの名無しさん [sage] 2023/01/05(木) 13:19:36.00 ID:PBBtO4Nd イヤ、“表現できる”ってとこに意味があるんだよ http://mevius.5ch.net/test/read.cgi/tech/1639713446/187
188: デフォルトの名無しさん [sage] 2023/01/05(木) 14:40:58.83 ID:dQdtWkz5 その割にデメリットの方が大きすぎる やはりいらないよ http://mevius.5ch.net/test/read.cgi/tech/1639713446/188
189: デフォルトの名無しさん [] 2023/01/14(土) 23:43:44.49 ID:vLwyb8f9 PureScriptと被ってるかな? [GHC 9.6.1-alpha1 is now available - Announcements - Haskell Community](https://discourse.haskell.org/t/ghc-9-6-1-alpha1-is-now-available/5585) http://mevius.5ch.net/test/read.cgi/tech/1639713446/189
190: デフォルトの名無しさん [sage] 2023/01/17(火) 00:55:50.42 ID:zIKNxshB 無限の長さの [a] を仮に廃止して他の言語と同じような方式に変えたら IO a のような型になる 生物学とか好きそうな人達は [a] と IO a の差が致命的 (つまり一方は死ぬが他方は生き残る) と決めつける傾向がある http://mevius.5ch.net/test/read.cgi/tech/1639713446/190
191: デフォルトの名無しさん [sage] 2023/01/17(火) 01:31:37.81 ID:PP1OxyD+ 生物学関係ないな http://mevius.5ch.net/test/read.cgi/tech/1639713446/191
192: デフォルトの名無しさん [sage] 2023/01/17(火) 03:13:49.00 ID:zIKNxshB 言語は死なないとか復活させればいいだけとか思うならもう生物学関係ない そう思わないなら関係ありそう http://mevius.5ch.net/test/read.cgi/tech/1639713446/192
193: デフォルトの名無しさん [sage] 2023/01/17(火) 08:07:29.90 ID:Inpyi8aQ 無意味な比喩表現 http://mevius.5ch.net/test/read.cgi/tech/1639713446/193
194: デフォルトの名無しさん [sage] 2023/01/19(木) 01:20:46.84 ID:cE+DUb2P クラウドは中に人がいるのか無人なのか調べられないので 人間と機械を混同したのではなく不確実にした http://mevius.5ch.net/test/read.cgi/tech/1639713446/194
195: デフォルトの名無しさん [sage] 2023/01/19(木) 07:47:39.45 ID:7wHhBGeN 意味不明 もう少し文章を書く練習をしろ http://mevius.5ch.net/test/read.cgi/tech/1639713446/195
196: デフォルトの名無しさん [sage] 2023/01/19(木) 17:42:25.26 ID:ugYwIpAQ 嘘を書くのをやめろって言われない努力はしてる 現に、嘘だと言われない http://mevius.5ch.net/test/read.cgi/tech/1639713446/196
197: デフォルトの名無しさん [sage] 2023/01/19(木) 20:45:58.03 ID:LuniV29G 間違ってさえいない文章 真偽以前に中身がない http://mevius.5ch.net/test/read.cgi/tech/1639713446/197
198: デフォルトの名無しさん [sage] 2023/01/19(木) 20:49:17.03 ID:LuniV29G それっぽいだけで少し読めば大したことすら書かれてないのがわかる http://mevius.5ch.net/test/read.cgi/tech/1639713446/198
199: デフォルトの名無しさん [sage] 2023/01/19(木) 21:18:32.97 ID:ugYwIpAQ 「わかる」と「意味不明」は矛盾しそう どっちかが嘘ついるのでは http://mevius.5ch.net/test/read.cgi/tech/1639713446/199
200: デフォルトの名無しさん [sage] 2023/01/19(木) 21:33:25.41 ID:QROh3L3M >>199 お前読解力もないのか もうこのスレ来るなよ http://mevius.5ch.net/test/read.cgi/tech/1639713446/200
201: デフォルトの名無しさん [sage] 2023/01/19(木) 21:38:24.06 ID:CHvJHSS4 お前も反応すんなよ http://mevius.5ch.net/test/read.cgi/tech/1639713446/201
202: デフォルトの名無しさん [sage] 2023/01/20(金) 01:52:23.49 ID:jpIFaaML いくら話題がないからって http://mevius.5ch.net/test/read.cgi/tech/1639713446/202
203: デフォルトの名無しさん [sage] 2023/01/21(土) 13:30:02.33 ID:ms4pFp6J 職業倫理が苦手です http://mevius.5ch.net/test/read.cgi/tech/1639713446/203
204: デフォルトの名無しさん [sage] 2023/01/21(土) 16:31:20.60 ID:c9rqNig0 スレチ http://mevius.5ch.net/test/read.cgi/tech/1639713446/204
205: デフォルトの名無しさん [sage] 2023/01/29(日) 20:58:33.14 ID:3238s/rq 教科書の通りなのになんでエラーになるんだろう? code: fork :: (a->b, a->c) -> a -> (b, c) fork (f, g) h = fork (f h, g h) main :: IO () main = do print $ fork (map fst, map snd) (zip [0 .. 4] "hallo") Output: Error occurred ERROR line 2 - Type error in explicitly typed binding *** Term : fork *** Type : (a -> b -> c,a -> b -> d) -> a -> b -> (c,d) *** Does not match :
(a -> b -> c,a -> b -> d) -> a -> (b -> c,b -> d) http://mevius.5ch.net/test/read.cgi/tech/1639713446/205
206: デフォルトの名無しさん [sage] 2023/01/30(月) 02:11:06.80 ID:jVdK8GQm >>205 fork (f, g) h = (f h, g h) では? http://mevius.5ch.net/test/read.cgi/tech/1639713446/206
207: デフォルトの名無しさん [sage] 2023/01/30(月) 04:31:24.57 ID:KsiNNj/4 >>206 ありがとうございます。その通りでした。 code: pair :: (a->b, a->c) -> a -> (b, c) pair (f, g) x = (f x, g x) fork :: (a->b, a->c) -> a -> (b, c) fork (f, g) h = pair (f, g) h main :: IO () main = do print $ fork (map fst, map snd) (zip [0 .. 4] "hallo") Output: -- ([0,1,2,3,4],"hallo") これで上手く動いたので報告しておこうと思ったら、同じことを2時間以上も前に... oTL http://meviu
s.5ch.net/test/read.cgi/tech/1639713446/207
208: デフォルトの名無しさん [sage] 2023/02/01(水) 14:35:45.13 ID:RAEJFXsc Haskell使い(でLinux使い)の皆さんってxmonad使ってますか? ウィンドウフォーカスを切り替えるときにfloatingウィンドウは無視するようにしたいです。 オリジナルのfocusUp'関数は focusUp' :: Stack a -> a focusUp' (Stack t (l:ls) rs) = Stack l ls (t:rs) focusUp' (Stack t [] rs) = Stack x xs [] where (x :| xs) = NE.reverse (t :| rs) と大変記述量の少ない作りになってるのですが、これに最小の変更を加えて目的を実現するとしたらどうするべきでしょ
うか? http://mevius.5ch.net/test/read.cgi/tech/1639713446/208
209: デフォルトの名無しさん [sage] 2023/02/17(金) 00:17:58.82 ID:x2uQcODA ChatGPTにいろんなサンプル書かせて勉強させてもらってるわ http://mevius.5ch.net/test/read.cgi/tech/1639713446/209
210: デフォルトの名無しさん [sage] 2023/02/18(土) 07:53:47.68 ID:pwjCq/Fb >>208ですがスレチですかね Linux板のタイル型WMスレに移動させていただきます (全く動いてないスレなのでダメ元ですが……) http://mevius.5ch.net/test/read.cgi/tech/1639713446/210
211: デフォルトの名無しさん [] 2023/02/23(木) 22:53:40.11 ID:3VcdShfb すみません 凄いHを楽しく学ぶ本を復習していて 疑問に思って試してみたのですが 具体的な型が決まらない値(単独変数で)は 下記の(Maybeや配列)の他にどんなのがありますでしょうか。 v1 :: Maybe a v1 = Nothing v2 :: [a] v2 = [] 型拘束を使わない型変数を使って ある単独変数の型を定義できない物かと思いました。 また関数でも具体的な型が決まらない値を返す 関数はありますでしょうか。 (Nothingや空リスト以外で) http://mevius.5ch.net/test/read.cgi/t
ech/1639713446/211
212: デフォルトの名無しさん [sage] 2023/02/24(金) 02:14:24.44 ID:PIH/rCf2 >>211 Bing チャットに聞いたらこんなのが返ってきた。参考になるかな。 型変数を含むデータ型の例としては、関数型、代数的データ型、型クラスなどがあります。 例: data Tree a = Leaf a | Node (Tree a) (Tree a) この代数的データ型Treeは任意の型aを要素とする二分木を表します。 例: class Eq a where (==) :: a -> a -> Bool (/=) :: a -> a -> Bool この型クラスEqは任意の型aに対して等値性を定義するための仕組みです。 http://mevius.5ch
.net/test/read.cgi/tech/1639713446/212
213: デフォルトの名無しさん [sage] 2023/02/25(土) 11:21:45.77 ID:h/PI1ikt >>212 ありがとうございます。 凄いHを楽しく学ぶ本にも Tree型があったので試してみました。 具体的な中身が「無い」事を現す値の場合 型引数で定義できるみたいです。 data Tree a = EmptyTree | Node a (Tree a) (Tree a) deriving (Show) v3 :: Tree a v3 = EmptyTree http://mevius.5ch.net/test/read.cgi/tech/1639713446/213
214: デフォルトの名無しさん [] 2023/04/29(土) 14:07:24.45 ID:AoTbqg9O マルチポストだが教えてくれ 【追記あり】ChatGPTじゃなくて人力でモナドが発明された経緯を適当に調べた(ソース付き)。 https://qiita.com/iHdkz/items/e7a59eef034ab6d0fdc2 この記事正しいの?こんな話聞いたこともないし。圏論でモジュール性なんて扱えるの? http://mevius.5ch.net/test/read.cgi/tech/1639713446/214
215: デフォルトの名無しさん [sage] 2023/05/01(月) 00:30:45.06 ID:PDTetkfq >>214 よく分からんけど「モナドが発明された経緯」ではないな 1971年の本ですでにモナドについて書かれてるようだし en.wikipedia.org/wiki/Categories_for_the_Working_Mathematician http://mevius.5ch.net/test/read.cgi/tech/1639713446/215
216: デフォルトの名無しさん [sage] 2023/05/03(水) 20:58:10.10 ID:ioA1phJ7 >>214 英語で調べてもそんな話出てきたことはないな。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/216
217: デフォルトの名無しさん [sage] 2023/05/03(水) 21:14:18.69 ID:ioA1phJ7 これにもそんなストーリー書いてない https://pdfs.semanticscholar.org/59d7/a0f5c341ab450e2893eb73384895524bbebd.pdf http://mevius.5ch.net/test/read.cgi/tech/1639713446/217
218: デフォルトの名無しさん [sage] 2023/06/09(金) 14:58:05.85 ID:GYy2ex4t lispやらカリー=ハワード同型やらの関連性は 数学的な意味では遥か前だし実装上の話かな https://en.m.wikipedia.org/wiki/Timeline_of_category_theory_and_related_mathematics http://mevius.5ch.net/test/read.cgi/tech/1639713446/218
219: デフォルトの名無しさん [sage] 2023/06/20(火) 00:30:03.89 ID:qm9+2t5E do 記法でのメモ化について質問です 例えば do let x <- someComplexExpression print $ f x print $ g x のようなコードがあったとしてxの値はf xの評価の時点とg xの評価の時点で2回別々にされますか? 少なくともHaskell2010 Lang. Rep. (以下HLR2010)ではこのような場合メモ化されて2回展開されることはないという記述を見つけることはできませんでした なので公式にはこのような記述だと2回展開されると思わなければいけないのだと思います ではsomeComplexExp
ressionを先に展開してから、展開したものをxにbindするにはどうすれば良いのでしょうか? HLR2010ではswqを使えば良いとあるのですがこの場合 x <- seq someComplexExpression someComplexExpression とかでうまく行くんでしょうか? またそれでうまくいってるのかどうか確かめる方法はありますか? つまり実際何回 someComplexExpressionが展開されてる回数を確かめる方法はありますか? よろしくお願い致します http://mevius.5ch.net/test/read.cgi/tech/1639713446/219
220: デフォルトの名無しさん [sage] 2023/06/25(日) 14:24:09.04 ID:H+Ij4nqZ 質問にさせていただきます 違う標数での有限体での計算を必要とするコードを考えてます ある変数に𝔽₃や𝔽₅の値を混在して代入することはないので𝔽₃の元を生成するconstructor F3や𝔽₅の元を生成すconstructor F5を定義して x = F3 $ 1+2 y = F5 $ 2-5 のような記述ができればいいなと思ってます そのためには data FiniteFieldCh3 = F3 Int instance Num F3 where... のようにF3,F5両方にNumを定義しないと
いけません 面倒なのでFiniteFieldと言うクラスを作って以下のようにできないかやってみたところ class FiniteField t where modulus :: t -> Int toInt :: t -> Int fromInt :: Int -> t instance ( FiniteField a ) => ( Num a ) where x + y = fromInt $ mod ( toInt x ) + ( toInt y ) ) ( char x ) http://mevius.5ch.net/test/read.cgi/tech/1639713446/220
221: デフォルトの名無しさん [sage] 2023/06/25(日) 14:24:14.71 ID:H+Ij4nqZ 以下のようなerror が出てきます prog.hs:22:10: error: • The constraint ‘FiniteField a’ is no smaller than the instance head (Use UndecidableInstances to permit this) • In the instance declaration for ‘(Num a)’ | 22 | instance ( FiniteField a ) => ( Num a ) where | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ コレはなんですか? ちなみにFlexibleInstancesというのが必要かとの事なので冒頭に {-# LANGUAGE FlexibleInstance
s #-} を入れています コンパイラはghc8.4.4です よろしくお願い致します http://mevius.5ch.net/test/read.cgi/tech/1639713446/221
222: デフォルトの名無しさん [sage] 2023/06/25(日) 14:43:47.12 ID:H+Ij4nqZ すいません、最後の行間違って修正前のやつコピペしました class FiniteField t where modulus :: t -> Int toInt :: t -> Int fromInt :: Int -> t instance ( FiniteField a ) => ( Num a ) where x + y = fromInt $ mod ( toInt x ) + ( toInt y ) ) ( modulus x ) です よろしくお願い致します http://mevius.5ch.net/test/read.cgi/tech/1639713446/222
223: デフォルトの名無しさん [sage] 2023/06/25(日) 15:08:12.64 ID:CDxt6lPg 型クラスの単相性制限とか、関数従属性とか、とか。。。 的外れなこと言ってたらごめん。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/223
224: デフォルトの名無しさん [sage] 2023/06/25(日) 15:23:50.61 ID:CDxt6lPg なんか Bard とかにつっこんでも情報得られるかも http://mevius.5ch.net/test/read.cgi/tech/1639713446/224
225: デフォルトの名無しさん [sage] 2023/06/25(日) 17:33:31.79 ID:OvK+yilq ありがとうございます 現在まだ調べてる最中なんですけど https://stackoverflow.com/questions/7198907/haskell-constraint-is-no-smaller-than-the-instance-head によるとどうもclass制約の解決をloopさせないための制約くさいです つまり「aがclasd Cのときclass Dにも入れる事ができる」、「aがclass Dのときclass Cにも入れる事ができる」の宣言 class ( C a ) => D a where ... class ( D a ) => C a where ... のような宣言があるとまずいようです な
ので=>の左側の型は右側の型より“短い”事が要求されるそうです 例えばtoDみたいな型生成子を作っておいて class ( C a ) => ( D ( toD a ) ) where ... などとしないといけないらしいです でその後newtypeを使うとどうやらこうやら書いてあるんですけどなんのことやら http://mevius.5ch.net/test/read.cgi/tech/1639713446/225
226: デフォルトの名無しさん [sage] 2023/07/03(月) 23:45:49.20 ID:QPaqlNti 値とmoduleどっちも含んだdata作ればいいのでは http://mevius.5ch.net/test/read.cgi/tech/1639713446/226
227: デフォルトの名無しさん [sage] 2023/07/04(火) 00:24:50.19 ID:+0TfLuMN >>226 こういうやつですね data FiniteField = FF { val :: Int, modulus :: Int } deriving ( Show, Eq) instance Num FiniteField where x + y = FF ( mod ( ( val x ) + ( val y ) ) ( modulus x ) )( modulus x ) x * y = FF ( mod ( ( val x ) * ( val y ) ) ( modulus x ) )( modulus x ) fromInteger x = FF x 1 でもコレだと例えば x = FF 2 7 y = FF 4 7 x + y のような場合実行時にプログラムは値に格納されてるmodulusを読みに行ってから割り算行
うという手間がかかります しかし私のやりたいプログラムではそもそも各変数のmodulusは確定していてそもそも読みに行くのはバカバカしい感じがします 実行時にxもyも𝔽₇の元と決まりきっててmod の第二引数はコンパイル時点で7と決まっているのにその7を読みに行く作業が無駄に思えるんです しかもコレは型ではなく値なので型チェックの恩恵も受けることができません プログラム中に出てくるmodilus事に全部F2型、F3型、F5型‥と全部作って全部のNum instance一個ずつ定義してとやればできるんでしょうけど、何が上手い逃げ道はないもの
かと http://mevius.5ch.net/test/read.cgi/tech/1639713446/227
228: デフォルトの名無しさん [sage] 2023/07/04(火) 11:11:04.93 ID:rN492ZrW この記事では剰余環を作っているみたいだけど、参考にならないかな https://qiita.com/gummycandy/items/9abca700eea7f46626e4 http://mevius.5ch.net/test/read.cgi/tech/1639713446/228
229: デフォルトの名無しさん [sage] 2023/07/06(木) 01:04:07.84 ID:sds/6LG1 みなさん情報ありがとうございます 色々紹介していただいたソースとか自分で探してみた情報とかでまずは一区切りつける事にしました こんな感じになりました https://ideone.com/3Lhc4z http://mevius.5ch.net/test/read.cgi/tech/1639713446/229
230: デフォルトの名無しさん [] 2023/08/05(土) 13:07:07.29 ID:1IOAcn45 hage http://mevius.5ch.net/test/read.cgi/tech/1639713446/230
231: デフォルトの名無しさん [sage] 2023/09/04(月) 14:41:20.09 ID:FcZAE9nJ haskellは廃れてきてるな、悲しい スペースリーク対応は難しすぎるしライブラリ類も最新のghcだと使えなかったりしてなんか 実用的な言語じゃないなって思う xmonadなんかはほとんどBangPatternだよね そういえば自動でstrictにする拡張が2個ぐらいあったけど追ってないどうなの http://mevius.5ch.net/test/read.cgi/tech/1639713446/231
232: デフォルトの名無しさん [] 2023/09/16(土) 21:21:50.35 ID:6682wM15 数学の集合は普通順番を付けて書くと思うのですが(添字でアクセスできたほうが便利) なぜ多くの言語では集合に順番がないのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1639713446/232
233: デフォルトの名無しさん [] 2023/09/16(土) 21:25:49.38 ID:6682wM15 等価判定演算子では順番を問わないが、 記法としては順番によるインデックスアクセスもできる、が便利だと思うのですが 一番基礎的な集合の一つである自然数が順番を重視して扱うように大半の集合は順序を整頓して書かないと実用上不便ではないでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1639713446/233
234: デフォルトの名無しさん [sage] 2023/09/16(土) 23:06:28.20 ID:XG1/1lYn 順番がないやつと順番があるやつは なぜ対等な関係ではなく前者が一般的で後者が特殊だと言われるのか? 逆に、複素数はなんで虚部があるやつが一般的で虚部がないやつが特殊なのか? http://mevius.5ch.net/test/read.cgi/tech/1639713446/234
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 458 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s