関数型プログラミング言語Haskell Part34 (694レス)
関数型プログラミング言語Haskell Part34 http://mevius.5ch.net/test/read.cgi/tech/1639713446/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
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://mevius.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/tech/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回展開されると思わなければいけないのだと思います ではsomeComplexExpressionを先に展開してから、展開したものを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 FlexibleInstances #-} を入れています コンパイラは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
235: デフォルトの名無しさん [] 2023/09/16(土) 23:13:33.62 ID:6682wM15 数学的概念として等価だったりどちらが特殊とか言えないのは納得しています ただ、集合は順序を維持して記述するようにしたほうが明らかに認知的負荷が少なく、数学的記法でも多くの場合でそうなっていると思うのですが、 多くの言語で組み込み型の集合がそうなっていないのはどのような思想によるものでしょうか?という質問です http://mevius.5ch.net/test/read.cgi/tech/1639713446/235
236: デフォルトの名無しさん [sage] 2023/09/17(日) 02:24:17.53 ID:yNwKlKA6 データ型としての起源としては 素集合データ構造から始まっているようなので 素である(disjoint)ことがまず要求されて 他に集合という名前が使われていないことから 素で非順序的なデータ型のことを集合型と呼ぶことになった模様 http://mevius.5ch.net/test/read.cgi/tech/1639713446/236
237: デフォルトの名無しさん [sage] 2023/09/17(日) 02:39:39.55 ID:XqeO/FaW 組み込み型とユーザー定義型の区別をなくす思想はある 最も正しいことを実現する思想ではなくミスをした場合の罪が軽くなる http://mevius.5ch.net/test/read.cgi/tech/1639713446/237
238: デフォルトの名無しさん [sage] 2023/09/17(日) 23:47:13.96 ID:70jB6wMR 初心者は++を使うけどなれたら<>を使ってる人が多い気がする SemiGroupであれさえすれば使える<>を使った方が汎用的にかけるからかな http://mevius.5ch.net/test/read.cgi/tech/1639713446/238
239: デフォルトの名無しさん [sage] 2023/09/18(月) 10:00:00.93 ID:E5yF50jH 俗説が廃れるのは「時代が変われば正しさが変わるから」ではありません 俗説が正解だった時代などない http://mevius.5ch.net/test/read.cgi/tech/1639713446/239
240: デフォルトの名無しさん [sage] 2023/09/19(火) 19:53:05.75 ID:QCYT99dv unixのtouchを実現したいのですが {-# LANGUAGE OverloadedStrings #-} import System.Posix.Files.ByteString main = do touchFile "hoge.txt" touch.hs: hoge.txt: touchFile: does not exist (No such file or directory) というエラーがでます ないのは当たり前でtouchで作ろうとしてるのですがバグがあるのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1639713446/240
241: デフォルトの名無しさん [sage] 2023/09/19(火) 19:54:00.31 ID:QCYT99dv unixのtouchを実現したいのですが {-# LANGUAGE OverloadedStrings #-} import System.Posix.Files.ByteString main = do touchFile "hoge.txt" touch.hs: hoge.txt: touchFile: does not exist (No such file or directory) というエラーがでます ないのは当たり前でtouchで作ろうとしてるのですがバグがあるのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1639713446/241
242: デフォルトの名無しさん [sage] 2023/09/19(火) 19:58:16.28 ID:QCYT99dv すみません、書き込むボタンの反応がなかったので連投になってしまいました http://mevius.5ch.net/test/read.cgi/tech/1639713446/242
243: デフォルトの名無しさん [sage] 2023/09/19(火) 20:14:24.31 ID:a563RtWW touchの本来の意味を考えれば、まあできなくてもそういうもんだなと思ふ http://mevius.5ch.net/test/read.cgi/tech/1639713446/243
244: デフォルトの名無しさん [sage] 2023/09/19(火) 20:14:45.64 ID:a563RtWW touchの本来の意味を考えれば、まあできなくてもそういうもんだなと思ふ http://mevius.5ch.net/test/read.cgi/tech/1639713446/244
245: デフォルトの名無しさん [sage] 2023/09/19(火) 20:18:27.88 ID:a563RtWW ありゃ俺も連投しちまったすまん なんか5ch重いっぽいね http://mevius.5ch.net/test/read.cgi/tech/1639713446/245
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 449 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s