1 名前:デフォルトの名無しさん [2020/02/10(月) 18:17:36 ID:L6eYQqyh.net] 関数型プログラミング言語 Haskell について語るスレです。 Haskell Language(公式サイト) https://www.haskell.org/ 日本Haskellユーザーグループ - Haskell-jp https://haskell.jp/ 前スレ 関数型プログラミング言語Haskell Part32 https://mevius.5ch.net/test/read.cgi/tech/1548720347/
818 名前:デフォルトの名無しさん mailto:sage [2021/04/05(月) 22:48:33.31 ID:RKVG1ya/.net] >>807 今書いている翻訳単位で import しているモジュールを qualified で装飾すれば、 今書いている翻訳単位内で定義している同名の関数は修飾せずとも使えると思うのですが、どうですか? module Main where import qualifued Data.List as L transpose :: (Int, Int) -> (Int, Int) transpose (x, y) = (y, x) main :: IO () main = do let a = L.transpose [[1, 2], [3, 4]] let b = transpose (1, 2) putStrLn $ show a ++ " / " ++ show b
819 名前:デフォルトの名無しさん mailto:sage [2021/04/06(火) 12:32:00.21 .net] >>809 値コンストラクタ名に被りがあった場合、それができないようなのです import モジュールの側の同名値コンストラクタを、qualifiedして修飾しましたので今書いてるモジュールの方を修飾なしで書いたのですが それはAmbiguousだと怒られます
820 名前:デフォルトの名無しさん mailto:sage [2021/04/06(火) 20:13:47.61 ID:sYlI8eNJ.net] ホントだ 怒られた import qualified Data.Bool as B data MyBool = True | False instance Show MyBool where show Main.True = "MyTrue" show Main.False = "MyFalse" main = do print B.True print Main.True --print True ←ダメだって
821 名前:デフォルトの名無しさん mailto:sage [2021/04/06(火) 20:14:29.60 ID:VZ4U19ap.net] そりゃそうでしょうよ・・
822 名前:デフォルトの名無しさん mailto:sage [2021/04/06(火) 20:30:15.84 ID:O0PfwEM6.net] 曖昧さ無く無い?なんでダメなんだっけ
823 名前:デフォルトの名無しさん mailto:sage [2021/04/06(火) 20:31:09.67 ID:xR67cG4d.net] Prelude が暗黙的に居るから?
824 名前:デフォルトの名無しさん mailto:sage [2021/04/06(火) 21:08:36.42 ID:sYlI8eNJ.net] しかし>>809 は怒られない 関数とか値コンストラクタとかclass名とかそれぞれの名前空間でちょっとずつ管理法がずれてるんだな 理由は知らんけど
825 名前:デフォルトの名無しさん mailto:sage [2021/04/06(火) 22:30:07.58 ID:sYlI8eNJ.net] いや>>814 さんの言う通りだったかな? コレ↓は通る BoolがダメだったのはPreludeで読んでたからだな ちゃんと修飾なしの場合Main moduleのコンストラクタが選ばれてる import qualified System.Exit as S data MyExitCode = ExitSuccess | ExitFailure Int instance Show MyExitCode where show ExitSuccess = "MyExitSuccess" show ( ExitFailure x ) = "MyExitFailure " ++ ( show x ) main = do print ExitSuccess print S.ExitSuccess print $ ExitFailure 12 print $ S.ExitFailure 12
826 名前:デフォルトの名無しさん mailto:sage [2021/04/06(火) 22:52:08.72 ID:vUIEomdt.net] >>810 エラーメッセージは省略せずに書いてほしい
827 名前:デフォルトの名無しさん mailto:sage [2021/04/07(水) 15:24:37.74 .net] module BinaryRepresentation.Word8 ( BiRep8( Rep) ) where import Data.Word( Word8) newtype BiRep8 = Rep Word8 instance Show BiRep8 where show a = show' 8 a "" where show' 0 _ s = s show' count (Rep w8) s = let (q,r) = w8 `quotRem` 2 in show' (count-1) (Rep q) (r `shows` s) ---------↑binary_representation8.hs-----------------------------
828 名前:デフォルトの名無しさん mailto:sage [2021/04/07(水) 15:24:59.63 .net] module BinaryRepresentation.IPAddress( IPv4Address, BiRepIPv4Address( Rep), makeIPv4 ) where import Data.Word( Word8) import Data.List( intersperse) import BinaryRepresentation.Word8( BiRep8( Rep)) import qualified BinaryRepresentation.Word8 as Bi8 newtype IPv4Address = A (Word8, Word8, Word8, Word8) ipshow::Show s=> (Word8->s) -> [Word8] -> String ipshow f list = concat . intersperse "." $ (show . f) <$> list instance Show IPv4Address where show (A (_1,_2,_3,_4)) = ipshow id [_1,_2,_3,_4] newtype BiRepIPv4Address = Rep IPv4Address instance Show BiRepIPv4Address where show (Rep (A (_1,_2,_3,_4))) = ipshow Bi8.Rep [_1,_2,_3,_4] makeIPv4::Word8 -> Word8 -> Word8 -> Word8 -> IPv4Address makeIPv4 _1 _2 _3 _4 = A (_1, _2, _3, _4) -----------↑binary_representation_ipv4.hs------------------------
829 名前:デフォルトの名無しさん mailto:sage [2021/04/07(水) 15:25:15.94 .net] [2 of 2] Compiling BinaryRepresentation.IPAddress ( binary_representation_ipv4.hs, binary_representation_ipv4.o ) binary_representation_ipv4.hs:24:11: error: Ambiguous occurrence ‘Rep’ It could refer to either ‘BinaryRepresentation.Word8.Rep’, imported from ‘BinaryRepresentation.Word8’ at binary_representation_ipv4.hs:8:36-47 or ‘BinaryRepresentation.IPAddress.Rep’, defined at binary_representation_ipv4.hs:21:28 | 24 | show (Rep (A (_1,_2,_3,_4))) | ^^^ ------------------------------------------------ 意図:Word8 値を01表記で表現するモジュールを作り、それを用いてIPv4アドレスを01表記で表現する 問題:binary_representation_ipv4.hs のRepが、binary_representation8.hs のRepと被りAmbiguousである 判明しているワークアラウンド:24行目のRep を BinaryRepresentation.IPAddress.Rep という糞ダサコードへ書き換える 望む事:修飾せずに済ますか、短い修飾で済ませたい
830 名前:デフォルトの名無しさん mailto:sage [2021/04/07(水) 15:51:36.65 ID:6KWn3Zlg.net] import BinaryRepresentation.Word8( BiRep8( Rep)) ↑これ何?消せば?
831 名前:デフォルトの名無しさん mailto:sage [2021/04/07(水) 18:16:48.26 .net] はわわ。。。通りました 下手にimport書いたせいで通らなくなるとかあるんですね 蛇足importと名付けて教訓にします。ありがとうございました
832 名前:デフォルトの名無しさん mailto:sage [2021/04/07(水) 23:07:15.55 ID:PA0bBjRm.net] >>822 勘でコード書いてるのかよw
833 名前:デフォルトの名無しさん [2021/04/12(月) 18:05:50.35 ID:rYLpZPiw+] 仕事が生きがい?会社員の分際で?そろそろ認めなさい…あなたたちは単なる駒です ⇒赤羽の父ひろゆきが教える仕事の本質とやりたいことの違いが凄過ぎて感動が止まらない… https://www.youtube.com/watch?v=zkwQOdq17dI 【ひろゆき/切り抜き】サラリーマンって資本主義の奴隷なの? https://www.youtube.com/watch?v=Vi-dvyd5ksE&t=74s 【ひろゆき】社会人語っちゃうサラリーマンについて語りました https://www.youtube.com/watch?v=pX7NHj_rIBg 奴隷は身近にある?日本の奴隷について【ひろゆき 切り抜き】 https://www.youtube.com/watch?v=evQjCUWIHV4 【ひろゆき】会社員なんて楽しくない?⇒楽しいしラクな仕事の仕方とは※サラリーマン必見! https://www.youtube.com/watch?v=T95-FS8sT3w&t=390s 【ひろゆき】日本のサラリーマン制度...終わってますよwww https://www.youtube.com/watch?v=Y-30zk2zDn0 【ひろゆき】視聴者の質問そっちのけで虚言癖アピールするひろゆき https://www.youtube.com/watch?v=cMjk9B4J2n4 【ひろゆき/切り抜き】虚言癖ってどうやって直せばいい? https://www.youtube.com/watch?v=5cS7vyb0tfE
834 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 20:07:55.95 ID:WnmkLZut.net] >>822 > 下手にimport書いたせいで通らなくなるとかあるんですね ちょ・・・・
835 名前:デフォルトの名無しさん mailto:sage [2021/04/16(金) 21:11:12.10 ID:trr1lKH1.net] "http2" library v3.0.0 in Haskell has been released
836 名前:デフォルトの名無しさん mailto:sage [2021/04/16(金) 21:38:11.49 ID:gUR6Epkt.net] >>808 型駆動開発(TDD)はidris作者が本出してるけどそれのことかいな? であれば予想してるように依存型前提よ パターンマッチはデータ構築子に沿って分解してるだけだから (x:xs)だけじゃなくて(xs++[x])でパターンマッチできるようにSQLよろしく型レベルのウインドウ関数つくりましょう IDEにコード生成させましょう とかって大変楽しい本だった
837 名前:デフォルトの名無しさん mailto:sage [2021/04/17(土) 18:14:21.16 ID:+4ymujjn.net] リストを使って漸化式 r_n = max_{1 <= i < n} (p_i + r_{n-i}), r_0 = 0 を解くプログラムを書いたのですがリストをArrayに変えたとたん動かなくなりました どうやらmax'にifが使われているのが原因のようなのですが動かなくなる理由が分かりません どなたか分かる方いますか? プログラムは以下の通りです import Data.Array p = [1,5,8,9,10,17,17,20,24,30] max' (i,q) (i',q') = if q < q' then (i',q') else (i,q) solver p = array (0,length p) $ (0,0):[ -- 動かない foldr1 max' [(i, p !! (i-1) + rs ! (j-i)) | i <- [1..j]] | j <- [1..length p] ] where rs = solver p solver' p = (0,0):[ -- 動く foldr1 max' [(i, p !! (i-1) + (snd $ rs' !! (j-i))) | i <- [1..j]] | j <- [1..length p] ] where rs' = solver' p
838 名前:デフォルトの名無しさん mailto:sage [2021/04/17(土) 18:16:48.86 ID:+4ymujjn.net] 動かないと言うのはghciに入力すると結果がいつまで経っても出力されない状況を指します
839 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 10:31:13.12 ID:y0UqG5zB.net] なんでみんなhaskellでアプリ作らないの?
840 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 13:13:30.99 .net] すいません、Microsoft TrueSkill レーティングシステムのHaskell実装を探しているのですが見つかりません イロレーティングとグリコレーティングしかありません TrueSkillを実装したライブラリを知ってる方がいたら教えてください
841 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 22:22:49.79 ID:HZ/HWpqa.net] Haskellでアプリ作ろうにもopenglくらいしかまともなバインディングないんじゃなかったっけ? じぶんでラップするのだるいし おれはもうf#で作ることにしたよ
842 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 22:24:00.80 ID:HZ/HWpqa.net] あ、デスクトップアプリのことだと思ってたけど違うんかね
843 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 00:08:10.35 ID:fW0+gsWX.net] パターンマッチでRustみたいに match x { Some(SeqCst)=>true, Some(Relaxed)=>true, _=>false } を match x { Some(SeqCst|Relaxed)=>true, _=>false } って感じで書く方法ってある?
844 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 05:06:07.73 ID:XvUHL9Z9.net] haskellでmatchってあるの?
845 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 11:45:43.79 ID:cKOIjnA7.net] >>835 標準ライブラリにはないけどhackageとかにはある https://hackage.haskell.org/package/regex-compat-0.95.2.1/docs/Text-Regex.html 解説も転がってる https://sirocco.hatenadiary.org/entry/20090416/1239852340
846 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 11:48:38.64 ID:cKOIjnA7.net] あ、matchって正規表現のmatchじゃなくて? 質問内容がふわふわしすぎで何がしたいのかさっぱり分からん
847 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 11:53:57.18 ID:+XHXxVLE.net] すまん自己解決したわ or patternsのことを言ってたんだけどissueに上がってるだけで未実装っぽい https://gitlab.haskell.org/ghc/ghc/-/issues/3919
848 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 16:46:12.69 .net] 時期に ARM CPUを載せた端末で 走る Haskell 製ソフトを公式に吐き出せるようになるんです?
849 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 10:53:50.63 ID:NqYfkIUy.net] CPUとHaskellって まるで中世からいきなりポストモダンに飛んでるみたいな世界観だな
850 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 11:35:40.38 ID:DozosAnh.net] たとえばC言語習いたての難しいと思う理由は、 コンピューターならこれくらいできるだろうと思ってた所に全然届いてなくて そこを全部自分で埋めなきゃならないことを認識するのに時間がかかること 代数的なHaskewllがデフォならすんなり学習できるかもな 逆に今はCに適応しすぎてHaskellに苦労する
851 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 12:48:56.18 ID:NqYfkIUy.net] >>841 これくらいできるだろうというのは楽観的すぎて苦労するパターンだ 悲観的な方が認識に時間がかからない Cに適応しすぎているという認識は本当に正しいのか? ここでも楽観と悲観が対立する
852 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 15:54:58.85 .net] 長く時間がかかるプログラムを走らせた時、タスクマネージャーを眺めると、少数のコアに高負荷、残り全コアに低負荷がかかってるみたいなのですが 実行時に使用コア数は指定していないことから推測すると、ガベコレは全コアで稼働するってことでしょうか?
853 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 13:34:14.84 ID:hkOb3/u2.net] Haskellのは単にシングルスレッドで回収してるだけだぞ
854 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 20:46:21.69 .net] え、じゃあなんで全コア低負荷になったんだろ・・・ 数分毎に階段のようにRAM使用量が数GBずつ増えて行って 長い処理が終了する直前に全コアフル稼働になって、直後に処理終了になったから ガベコレが関与してると思ったんですがね
855 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 21:35:55.30 ID:aaz7cUPO.net] サンクが溜まってって最後に遅延してそれらを評価したのでは というかパフォーマンスの話は変に予測立てたり先入観あったりするとろくなことないからもっと詳細にプロファイリングしたほうが
856 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 21:58:08.22 ID:Up5XEM4X.net] ガベコレ以外に考えられる原因が2つぐらいあったら ガベコレが原因である確率は1/3ぐらいだから 2/3の方が勝ちそう
857 名前:デフォルトの名無しさん mailto:sage [2021/05/29(土) 14:13:39.92 ID:SnGl3AHf.net] win10でstackとかghcそのものは正常に入るんたけどパッケージのコンパイルが絡んでくるとどうも文字コードが原因でコケる LANG=asciiにすると挙動が変わってくるんだけど、何にしとくのが正解なんだろ
858 名前:デフォルトの名無しさん [2021/05/29(土) 16:46:49.24 ID:1zrkc3qO.net] 100万要素の配列の1要素を更新するために配列の再作成が必要? https://www.quora.com/Is-Haskell-as-fast-as-C++-If-not-why-not/answer/James-Hollis-19 > Haskell naturally operates on lists, but is rather awkward with arrays. Pure functions do not modify their input, so a pure function that changes one element of a million element array will copy 999,999 elements into a second array and return that. You can get around this with monads, but you end up writing imperative code in something that is less flex
859 名前:ible than real imperative code. これをモナドとアクションで解決できる?どうやるのか? [] [ここ壊れてます]
860 名前:デフォルトの名無しさん mailto:sage [2021/05/30(日) 20:49:58.16 ID:QwiNWDL1.net] STArrayなりMutable Vectorなり使えば良いのでは
861 名前:デフォルトの名無しさん mailto:sage [2021/05/30(日) 22:25:02.60 ID:F1Ogq3BP.net] Unsafe でok 所詮物理的にはハードウェア上で動いてるのだから、 副作用なしなんてただの幻想よ
862 名前:デフォルトの名無しさん mailto:sage [2021/05/31(月) 09:29:30.68 ID:O6iiWxP2.net] 副作用の意味を勘違いしていないといいのだけれど・・・
863 名前:デフォルトの名無しさん mailto:sage [2021/05/31(月) 10:43:40.87 ID:xvi5eoqv.net] Rustと同じように、どうにかして型を弱くすれば副作用は好きなだけ使えるよ
864 名前:デフォルトの名無しさん mailto:sage [2021/06/01(火) 02:01:57.33 ID:4I1ndF8a.net] IOモナドやSTモナドの中でファイル操作したり現在時刻取って来たりしても問題無いわけだしわざわざ型犠牲にしなくても良いんじゃない
865 名前:デフォルトの名無しさん mailto:sage [2021/06/01(火) 10:15:13.07 ID:UuHFoCEt.net] 書き方が何通りもあってコンパイルが通るのは客観的事実だよ そんな書き方しなくても良いというのはまあ政治的にはそうなるわけだが コンパイルエラーにならないのに、バラモンみたいな人間に色々言われると混乱しやすい
866 名前:デフォルトの名無しさん [2021/06/01(火) 22:12:35.15 ID:HETOiJgb.net] 自然に書いたhaskellコードが極端に遅いという2018年の記事 https://pl-rants.net/posts/haskell-vs-go-vs-ocaml-vs/
867 名前:デフォルトの名無しさん mailto:sage [2021/06/03(木) 20:42:08.53 ID:/+9iJa2F.net] >>848 自己解決 language-javascriptパッケージのソースのコメントに∉記号がutf8で入ってて、環境によっては違うエンコードで読み込んでエラーになるっぽい 誰かが開発者にワークアラウンドとしてコメントをasciiで書き直してくれとリクエストしてたけど、ビルド環境を整えるのはstackの仕事だから俺は知らんと一蹴されてた まぁそりゃそうなんだけどさ...
868 名前:デフォルトの名無しさん mailto:sage [2021/06/05(土) 01:35:57.62 ID:qvRyjOjC.net] >>857 なんという罠… これ引っかかった人結構いそう
869 名前:デフォルトの名無しさん mailto:sage [2021/06/05(土) 12:32:22.17 ID:aDKd5nip.net] プログラミング最大の罠のひとつ 自分で創作するよりも他人のソースを読む方が難しい
870 名前:デフォルトの名無しさん mailto:sage [2021/06/07(月) 12:42:09.06 ID:k7DmZ27b.net] 昨日の自分は他人です
871 名前:デフォルトの名無しさん mailto:sage [2021/06/07(月) 20:28:43.19 ID:qbMAaCDK.net] 去年書いたコードが理解できない
872 名前:デフォルトの名無しさん mailto:sage [2021/06/07(月) 22:37:59.06 ID:+U7TScWJ.net] そりゃあ人間の能力は老化とともに衰えるから仕方ないね
873 名前:デフォルトの名無しさん mailto:sage [2021/06/07(月) 22:55:42.12 ID:OC0V43xk.net] ここ1, 2年で自分が書いたソースが回ってくることがあるけどほとんど覚えていなかった 今から振り返るともっといいやり方が思いつくけど、他人が書いたコードより遥かに行儀が良くて読みやすかった
874 名前:デフォルトの名無しさん mailto:age [2021/07/01(木) 09:54:29.98 ID:yiVYCTXd.net] Hmatrixはcabalで入れたのにghciから:m Numeric.LinearAlgebraや import Numeric.LinearAlgebraで行列演算モジュールを入れようとすると、 <no location info>: error: Could not find module ‘Numeric.LinearAlgebra’ Perhaps you haven't installed the "dyn" libraries for package ‘hmatrix-0.20.2’? Use -v to see a list of the files searched for. とエラーが出るのだけど、よく分からない。ホームディレクトリにHmatrixのファイルっぽい ものを置いてもダメ。Numericのフォルダをホームディレクトリに置いてもダメ 分かる人、教えてくださいm(_ _)m 古いパソコンの仮想linuxに入っている奴はimport Numeric.LinearAlgebraで 通常通り動くけど、その他のPCでは動かないんだよね。前は動いていたのもあったけど ファイル関係いじくり回してたら、設定が狂ったようで動かなくなった 関数型言語で行列演算さえ、導入にこれだけ苦労するとは、どういうことだいw
875 名前:デフォルトの名無しさん mailto:sage [2021/07/01(木) 13:56:29.22 ID:m444U3IV.net] > ファイル関係いじくり回してたら、設定が狂ったようで動かなくなった ちゃんとドキュメント読んでないよね?
876 名前:デフォルトの名無しさん mailto:sage [2021/07/01(木) 18:53:55.58 ID:dccggDtp.net] ghciでimportを複数すると、プロンプトが Prelude Data.Monoid Data.Traversable Data.Foldable> と長くなってしまうので、importしたの表示しないようにするにはどうしたらいいのですか?
877 名前:デフォルトの名無しさん mailto:sage [2021/07/01(木) 18:56:14.18 ID:dccggDtp.net] すまん、自己解決した :set promptを使えばいいのか promptでググれば良かった
878 名前:デフォルトの名無しさん mailto:sage [2021/07/01(木) 22:45:34.96 ID:FFAeznD4.net] quarifiedも使えるよ お好みで
879 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 03:41:23.49 ID:aoQxpJoS.net] >>864 ghciのコマンドライン引数に、使用したいパッケージを指定するものがなかったっけ? baseパッケージ以外はちゃんと引数で明示しないとghci上で使えなかったような気がする。
880 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 00:45:51.28 ID:FlY7oUIG.net] すいません 質問させて下さい Ghc.Types というのを眺めてたんですが 謎の#が入ってるコンストラクターがいっぱい見えます data {-# CTYPE "HsInt" #-} Int = I# Int# data {-# CTYPE "HsDouble" #-} Double = D# Double# newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #)) などなど なんですかコレ? 一方でたとえばDoubleはReal classに属してるのでsinとかlogとかの処理をどこかでやってると思うのですがどこにも見つけられません もちろんこんなプリミティブな演算はHaskellではなくCとかに丸投げしてるんでしょうけどその手の宣言なりなんなりはないもんなんですか?
881 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 08:27:37.09 ID:9m9xryS6.net] https://wiki.haskell.org/Unboxed_type 記事内リンクも見てね
882 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 09:09:34.41 ID:Qo9dk8cs.net] >>871 なるほど まだよくわかってないですけどunboxed typeというやつなんですね 後半もどなたか分かりませんか? 実は事情で“多倍長の浮動小数点”を自作したいのです そのためにはReal型にしなくてはならずsinとなlogとか結構ある数の関数を実装する必要があります どこかに参考にできるライブラリ転がってませんか? 性能は求めないので多倍長精度の計算ができるReal型を実装してる例が欲しいです
883 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 09:23:00.75 ID:Qo9dk8cs.net] 間違えた Float classがsinとかいっぱいあって難しいです
884 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 09:25:56.65 ID:Qo9dk8cs.net] 違う Floating orz
885 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 12:08:32.98 ID:5i+2sdHC.net] https://github.com/ghc/ghc/blob/master/libraries/base/GHC/Float.hs#L588 ライブラリがありそうな気がするけど、ghcクローンしてやりたいことできるか調べてみたら
886 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 12:28:39.86 ID:5i+2sdHC.net] hackageをfloatで検索した結果。怪しそうなやつ: https://hackage.haskell.org/package/variable-precision https://hackage.haskell.org/package/AERN-Real-Interval
887 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 23:01:22.87 ID:zugIw5Ja.net] あざっす ソース読んで研究しまつ
888 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 06:49:31.34 .net] リストのシャッフルは、2値ランダムと分割統治法で構成できるという境地に至った
889 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 16:41:58.17 ID:KhXXWhgG.net] 余談だけど オードリー・タン氏に性的に食指が動く 男性っているのかな。
890 名前:デフォルトの名無しさん [2021/07/16(金) 17:38:36.16 .net] あののののの! なんで型コンストラクタ名が被ったらいけないんですか! 型が違うならそのコンストラクタ名くらい被ったっていいじゃないですか!
891 名前:デフォルトの名無しさん [2021/07/16(金) 23:35:14.79 .net] Esqueleto では SELECT 〜 FROM ONLY an_table 〜 みたいに ONLY を付けることで継承テーブルを対称から外すように指示することはできないんですか? 生SQLを書くしかありませんか?
892 名前:デフォルトの名無しさん [2021/07/17(土) 15:02:59.17 ID:eTC1af8g.net] >>879 ちょまどは鳳唐好きだって言ってた
893 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 17:39:27.65 ID:44fEdIj7.net] 私は、MBAを取るために、ハワイにある伝統的なビジネススクールに通っていたとき、どこかの大企業で 働く中間管理職が教えるマネジメント「論」や経済「論」を学ぼうとしている自分に気付いた。 ビジネス経験のない先生は、学校制度の外に一度も出たことがない人だ。つまり彼は、5歳で幼稚園に入ってから ずっと学校制度の中にいるにもかかわらず、学生たちに実社会について教えようとしていることだ。 とんだお笑い草だと思った。 講師陣や中間管理職や教師のほとんどは、ゼロからビジネスを立ち上げるのに何が必要なのかについては何も知らなかった。 ロバートキヨサキ「人助けが好きなあなたに贈る金持ち父さんのビジネススクール」P62〜63 彼らのほとんどは、学校という象牙の塔を出ると、企業社会という象牙の塔に入った。 安定した仕事と給料に依存していた。つまり、素晴らしいビジネス論をもっている人は たくさんいたが、現実の世界でビジネスをゼロから立ち上げ、大きな富を蓄えるのを可能にする、 素晴らしいビジネススキルのある人はほとんどいなかったということだ。 彼らのほとんどは給料なしで生きていけなかった。 ロバートキヨサキ「人助けが好きなあなたに贈る金持ち父さんのビジネススクール」P63
894 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 18:54:41.40 ID:lhv7ZvYo.net] 言語設計者に対する悪口はそこまでにしてやれ
895 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 08:48:06.51 ID:p5uFvWrN.net] まあ、生きていけないぞー死ぬぞーってのが机上の空論の中でも最悪の論だよな 実際には死なない人が多い
896 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 22:53:21.56 .net] すいません、僕がスレを軽率に上げてしまったばっかりにワードサラダBOTの餌食なってしまうとは・・・
897 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 09:08:56.51 ID:Niob4uA5.net] 現状これはとりあえず有効にしとけみたいなGHC拡張ってなにがありますか
898 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 10:46:43.62 ID:jaES3hbu.net] >>887 無いです。 必要なときにのみ必要なだけ宣言するといいです。
899 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 04:08:52.62 ID:FlIQ/SVE.net] ttps://cognicull.com/ja Haskellやるのにこの辺は履修済みであることが求められるの? Obj-Cだとほぼなくてもアプリは書けるけども Haskellって数学じゃないのに数学のフリしてるところあるよね 利用者も然りで余計混乱を招いてる気がする
900 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 12:01:28.04 ID:nPPC7Onz.net] >>889 うーん、書きたいプログラムの内容によるとしか言えないかな こうしたことがわからないとHaskellのプログラムが書けないということはない そのあたりはObjective-Cと同じ
901 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 03:35:04.64 .net] Data.Arrayって廃止されたの? GHC.Arr を使えってこと?
902 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 05:37:33.58 ID:O4N47kXx.net] >>891 Data.Array は array パッケージにあります。
903 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 15:27:28.97 ID:6BJr6nx6.net] >>889 フリじゃなくて実際、他のメジャー言語よりは数学的裏付けがされてると思う 利用者も然りなのはむしろ良い傾向 他言語はhaskell以上に、ウェイがノリで書いたようなゴミライブラリが流行ってたり、侍エンジニアレベルのゴミ文献が蔓延ってたりする阿鼻叫喚状態
904 名前:デフォルトの名無しさん mailto:sage [2021/07/28(水) 02:22:30.38 .net] >>892 詳しい情報サンクス
905 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 13:54:44.53 ID:kX7UidPf.net] >>889 Haskell書いてるときにそういう系統の知識が要求されたことはないなぁ、いくつかの概念の出自が圏論だと聞いたことはあるが
906 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 14:32:21.44 ID:yBIo03BR.net] すごいHaskellに素晴らしい数学の解説書ってレビューがついてた時はクスっと来たけど
907 名前:デフォルトの名無しさん mailto:sage [2021/08/02(月) 07:34:32.07 ID:Rllz2LO9.net] 例えばOOPの継承関係を否定する 否定するなら対案を出せと言われる この過程は数学ではないけど結果的には半順序関係とか圏とか出てくる
908 名前:デフォルトの名無しさん [2021/08/16(月) 04:30:28.47 ID:aZY1/RTa.net] 純粋関数型でキャッシュは実装可能? 例えばOOPでは計算に時間がかかる値はキャッシュしておいて次の読み取りで キャッシュから返すという事ができる。 このキャッシュの管理をOOPらしいカプセル化によってまともに実装できる
909 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 18:24:35.56 ID:O8pAbV/G.net] >>898 可能です。 memoization をキーワードに調べてみてください。
910 名前:デフォルトの名無しさん mailto:sage [2021/08/18(水) 20:19:16.73 ID:MamsdVYI.net] >>66 オブジェクト指向プログラミングにおける Smalltalk 的な位置づけに来るんじゃないかな。 ガッチガチだから強制的に「その概念」に染まれる。
911 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 00:24:27.59 ID:anV9aH6F.net] 低級言語でインタプリタを作れそうなシェルスクリプト的な位置づけだよ 単一の高級言語を強制されない
912 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 16:00:36.29 ID:IKqVi/r3.net] 関数型言語ってリストとかツリーみたいな再帰的なデータ構造扱うのは得意だけど 有向・無向グラフ(のアルゴリズム)扱うの難しくない?
913 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 18:40:13.11 ID:JntO5v5E.net] >>902 難しいと感じるかどうかは本人の気持ちなので何とも言えません。 ただ、haskellでのグラフ理論の扱いに関しては、 カジュアルな解説もフォーマルな論文もたくさんあります。 ライブラリもあります。 扱ったことはないけど、何となくイメージだけで 難しそうだ、 haskellの苦手分野だと思っているのであれば、 自分に読めそうな記事にいくつかトライしてみてはどうでしょうか。
914 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 21:01:34.14 ID:anV9aH6F.net] >>902 Erlangのようなメッセージ送信を考えればわかるが メモリを共有していない相手にも送れるデータ構造が得意 メッセージとして文字列ばかり使ってるとカプセル化も型情報も無駄になる だから文字列に似ているが異なるデータ構造が役に立つ
915 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 21:36:21.14 ID:NimliznV.net] Applicativeの(*>)演算って何の意味があるの? 第一引数はどうせ捨てられるんでしょ。
916 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 23:09:37.51 ID:SkXNk2uR.net] 確かに左辺 :: f aで言うところのa型の値は捨てるが Maybeとか[]みたいな直和型でどの値コンストラクタを使って構築されたかの情報は影響するよ
917 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 21:35:42.38 ID:Wv9PZvrP.net] >>906 それは第1引数をパターンマッチすることで、たとえ第2引数が同じ値でも、 (*>)の計算結果を変えられることに意味があるってこと? Sum型やProduct型もApplicativeのインスタンスになってるけど、 これらだと(*>)には意味がない? (当然(<*>)など他の演算には意味があると思うけど)
918 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:58:50.16 ID:WIQMD65A.net] >>905 Parsecで左辺の句がいらないときに使う