[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
167(1): デフォルトの名無しさん [sage] 2011/10/16(日) 10:45:43.20 AAS
>>125125(3): デフォルトの名無しさん [sage] 2011/10/14(金) 21:58:31.29 AAS
IOモナドの典型的な使い方を理解していないのが原因
使い方を勉強すればいい
型エラーは、間違いを教えてくれただけ
はまっていいたのは、型エラーじゃなくて、IOモナドを使ったプログラミング
型エラーの泥沼に溺れたという認識を深化させて、IOモナドの泥沼に溺れたと考え直すのが最初の一歩
ハスケルたんは悪くない(キリッ
勉強不足の初心者が悪い!
ですか?
168(1): デフォルトの名無しさん [sage] 2011/10/16(日) 11:56:15.70 AAS
>>166166(1): デフォルトの名無しさん [sage] 2011/10/15(土) 23:12:07.79 AAS
内部で非ボックス化タプルを使ってる hs ファイルは
ghci ではロードできないのでしょうか
ghc コマンドでは普通にコンパイルできたのですが、
ghci の :l でロードしようとすると、次のようにメッセージが出ます
Error: bytecode compiler can't handle unboxed tuples.
Possibly due to foreign import/export decls in source.
Workaround: use -fobject-code, or compile this module to .o separately.
これは、ghci でロードしたかったら、hs ファイルではなく
オブジェクト ファイルにコンパイルしとけ、という意味でしょうか
ghci でロードできないのでしたら、一つのソースコードで、
ghc でのコンパイルの場合は非ボックス化タプルを使って、
ghci でロードする場合は普通のタプルに自動的に切り替える
というようなことはできないでしょうか
そういうこと。あるいはghciに-fobject-codeを渡すのでもいい
>というようなことはできないでしょうか
少なくとも今はできない
169: デフォルトの名無しさん [sage] 2011/10/16(日) 12:07:28.59 AAS
>>167
丁寧に答えてくれた人に 何しょうもない事言ってんねん。どっかいけ
答えてもらって助かったからそれでええんじゃ。
170: デフォルトの名無しさん [sage] 2011/10/16(日) 12:20:19.09 AAS
初心者はハスケルたんを汚す悪いやつ!
171(2): デフォルトの名無しさん [sage] 2011/10/16(日) 12:26:32.54 AAS
敷居が高いおかげでドカタが流入してこないから
Haskell界は住みやすくpurityが保たれている
ありがとう>125
172: デフォルトの名無しさん [sage] 2011/10/16(日) 12:35:10.32 AAS
>>171
でも、スレには何も知らずに荒らす連中が来るようになってる。
日本語版stackoverflowでもあったほうがいいんだろうかね。
173(1): デフォルトの名無しさん [sage] 2011/10/16(日) 12:59:22.17 AAS
日本語版か...おぞましいことになりそうな悪寒
忍法帳を発展さてくれればいいんだけど嫌がるひとも多いか
あとプログラム板でもID表示とか
174: デフォルトの名無しさん [sage] 2011/10/16(日) 13:06:48.21 AAS
>>171
こうしてHaskell界では
モナドモナドモナドモナカモナコ....だけでスレが消費され続けるのですた
メデタシメデタシ
175: デフォルトの名無しさん [sage] 2011/10/16(日) 13:44:32.75 AAS
くっぷぷぅ
176: デフォルトの名無しさん [sage] 2011/10/16(日) 14:15:40.79 AAS
>>168
> あるいはghciに-fobject-codeを渡すのでもいい
なるほど、ロードする度にオブジェクトコードを生成するよう指示すれば
ghc の様にコンパイルされるので非ボックス化タプルが使えるのですね
で、欠点はコンパイルに時間を要するかも知れないことと、
ghci のデバッガからは見えないことですね
> 少なくとも今はできない
わかりました
デバッガは今までも特に活用したことないので、
-fobject-code オプションでの対処で凌ぐことにします
177: デフォルトの名無しさん [sage] 2011/10/16(日) 14:27:50.62 AAS
>>173
おぞましくさせない工夫が必要なほど幼稚な日本語をしゃべる人
(日本人とは限らない。)が多いのは事実だ。アノニマスには
開放できない罠。一番いいのは英語を使えることというのは否定でけん。
178: デフォルトの名無しさん [sage] 2011/10/16(日) 14:35:19.94 AAS
外部リンク:stackoverflow.com
stackoverflowのhaskellタグ。
179(2): デフォルトの名無しさん [sage] 2011/10/17(月) 22:52:36.79 AAS
haskellって、コンパイルしたらJavaバイトコードのような
中間言語を吐き出すのでしょうか?
それとも機械後を吐き出してくれるのでしょうか?
180: デフォルトの名無しさん [sage] 2011/10/17(月) 23:01:04.24 AAS
>>179
それは言語の仕様ではないので厳密には実装によるが、デファクトスタンダードのGHCは基本的にネイティブコードを吐く。
181: デフォルトの名無しさん [sage] 2011/10/18(火) 00:53:08.36 AAS
外部リンク:www.haskell.org では、
> GHC compiles Haskell code either directly to native code or using LLVM as a back-end. GHC can also
> generate C code as an intermediate target for porting to new platforms. The interactive
> environment compiles Haskell to bytecode, and supports execution of mixed bytecode/compiled programs.
という紹介になってた。
182: 179 [sage] 2011/10/18(火) 13:32:09.88 AAS
ありがとうございます。
183(1): デフォルトの名無しさん [sage] 2011/10/20(木) 11:39:21.53 AAS
質問なのですが、windows上でGHCでコンパイルして、出来上がったhello.exeファイルをダブルクリックで実行するには、どうすればよいですか?
コマンドプロンプトから、ファイル名を入力したら、実行はできます。
184(1): デフォルトの名無しさん [sage] 2011/10/20(木) 12:31:00.43 AAS
>>183
たぶん、実行はされているけど、すぐにプログラムが終了してコンソールが閉じているだけだと思う
main = let loop = loop in putStr "Hello World!!\n" >> loop
でコンパイルしてダブルクリックしてみ
185: デフォルトの名無しさん [sage] 2011/10/20(木) 13:20:15.64 AAS
>>184
ありがとうございます!
その通りでした!
186(10): デフォルトの名無しさん [sage] 2011/10/20(木) 22:49:20.89 AAS
FizzBuzzを剰余使って書くのはすぐ思いつくけど、以下のは新鮮だった。
どうやったらこんな発想が出来る様になるんだろ。
fizz = cycle ["","","Fizz"]
buzz = cycle ["","","","","Buzz"]
f s n
| s == "" = show n
| otherwise = s
main = print $ zipWith f (zipWith (++) fizz buzz) [1..100]
187(2): デフォルトの名無しさん [sage] 2011/10/20(木) 23:11:26.56 AAS
>>186
オレ、そのアルゴリズム自力で思いついたけど、そんなに不思議かな。
たしか、3を法とする商群と5を法とする商群をなんとかすれば・・・ みたいなことを考えていて、思いついた
188(1): 186 [sage] 2011/10/20(木) 23:29:22.83 AAS
>>187
C、java、rubyと来たのでmapは理解していたけど、手続き型言語には無い発想だと思う。
ついでに言うと、今なら手続き型言語ユーザーが何故、関数型言語を誤解するのか判る気がする。
「関数」「型」「評価」など、同じ字面でも関数型言語とは違う意味で説明される物が多い。
189(1): SCHEME餃子 ◆8X2XSCHEME [sage] 2011/10/20(木) 23:52:51.12 AAS
要するに根本的なパラダイムが違うって話だよな
英語で話すときは英語で考えなきゃ滑らかに話せないって話は聞くけど、
Haskell で書くときは Haskell で考えなきゃいけないってことだろ
190(1): デフォルトの名無しさん [sage] 2011/10/20(木) 23:53:46.97 AAS
>>186
いいかどうかは別にして、カウンタやインデキシングを避けて、
何でもリストで考えればそうなる。
そうするとリストの代数的操作でプログラミングするようになる。
Richard Bird先生の本を読むのがいいかもしれない。
191: 187 [sage] 2011/10/21(金) 00:00:33.30 AAS
>>188
逆にオレはfor文でFizzBuzz書けとかいわれたら、戸惑うかな? たぶん戸惑うな。
whileでとか憤死するレベル。
上下前次1-新書関写板覧索設栞歴
あと 787 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s