[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
184
(1): デフォルトの名無しさん [sage] 2011/10/20(木) 12:31:00.43 AAS
>>183
183(1): デフォルトの名無しさん [sage] 2011/10/20(木) 11:39:21.53 AAS
質問なのですが、windows上でGHCでコンパイルして、出来上がったhello.exeファイルをダブルクリックで実行するには、どうすればよいですか?
コマンドプロンプトから、ファイル名を入力したら、実行はできます。
たぶん、実行はされているけど、すぐにプログラムが終了してコンソールが閉じているだけだと思う

main = let loop = loop in putStr "Hello World!!\n" >> loop

でコンパイルしてダブルクリックしてみ
475: デフォルトの名無しさん [sage] 2011/11/12(土) 15:49:41.43 AAS
>>473
473(5): デフォルトの名無しさん [sage] 2011/11/12(土) 15:32:33.20 AAS
haskellはrubyと比べてダメな言語。 外部リンク:d.hatena.ne.jp
そこで挙げられてる事に関しては俺もそうだと思う。
回避策はあるにはあるけど、いつも使える訳じゃないし。
499
(1): [―{}@{}@{}-] デフォルトの名無しさん [sage] 2011/11/12(土) 18:22:34.43 AAS
>>498
498(1): デフォルトの名無しさん [sage] 2011/11/12(土) 18:15:51.80 AAS
>>496
>Rubyのインスタンスメソッドについてはそれができるんだよ。

Rubyのインスタンスメソッドもレシーバで修飾しなければ区別できないよ。

たとえば
 c = A::B::C.new; e = A::D::E.new
という文脈の下で、レシーバで修飾された
 c.f および e.f
という式は正しく評価できるけど、単なる
 f
ではRuby処理形は式を評価できない。(当たり前の話だよね?)
もちろん。でもHaskellにはその能力がない
Rubyでuri.schemeと書くときにメソッド名schemeが他と衝突するのを心配する必要はないけど、
Haskellで(scheme uri)と書くならそうはいかない
これを指して>>486
486(2): デフォルトの名無しさん [sage] 2011/11/12(土) 17:11:25.72 AAS
>>484
できるけど、名前が衝突しない場合に限る。これはSMLも同じだよな?
Haskellで短かい名前を多用すると、けっこう頻繁に衝突して、けっきょく修飾インポートするはめになる
Rubyだとメソッド名はグローバルじゃないので衝突を気にする必要すらない
で「けっこう頻繁に衝突」と言った
>>487
487(3): デフォルトの名無しさん [sage] 2011/11/12(土) 17:16:42.29 AAS
>>486
>これはSMLも同じだよな?

いや、ゼンゼン(理由は下記を参照)

>Haskellで短かい名前を多用すると、けっこう頻繁に衝突して、

ナゼこんなことが起きるの?
SMLなら名前空間は(Rubyと同じように)階層化されているから、
適切にモジュール設計していれば、衝突なんて全く気にならないんだけど....

もしかしてHaskellの(モジュールに関する)名前空間というのは
フラット(平坦)なの?
で否定されたのでSMLにもRubyみたいなレシーバ依存の名前lookupがあるのかと思ったけど、
そういう訳でもないってことで良いかな
507: デフォルトの名無しさん [sage] 2011/11/12(土) 19:06:28.43 AAS
ここで出ている話題だと
コンパイル時に実装が選択できれば十分で
OOPの動的束縛を持ち出すのは道具が大きすぎな気がした
570
(1): デフォルトの名無しさん [sage] 2011/11/17(木) 19:07:23.43 AAS
>>567
567(3): デフォルトの名無しさん [sage] 2011/11/17(木) 16:36:41.92 AAS
中途半端なやつは嫌われる

天才でも馬鹿でもない=Haskell使ってるやつら

不良でもギャルでもヤクザでもない=パギャル、つっぱり、チンピラ ウザがられる

赤ちゃんでもない大人でもない=不細工な小学3年生 ポケモンでいうフシギソウ、カメール、リザード バッタでいう幼虫

Matzでもない小飼弾でもない=コガイよりつまらなくて、Matzより頭悪いHaskelやってるやつら

お前ら中途半端

中途半端は悪

なぜ悪か?悪いか答えてみてください 早く答えろ

ジャップ技術者=英語ができない、技術力も欧米以下、WEBサービスも微妙=中途半端
おら、返事は?
お前も中途半端なのか?
中途半端を見下すってことは、お前は中途半端じゃないんだろ?
614: デフォルトの名無しさん [sage] 2011/11/29(火) 18:40:40.43 AAS
「なあ、女の子に『可愛い』って言い続けたら、本当に可愛くなるらしいぜ」
「……それって、女の子だけなのか?」
「え?」
「お前、可愛いな」
「何の話だ」
「とぼけるお前も可愛い」
「だから何の話だ」
「マジで可愛い……」
「やめろ……」
「嫌がる姿も可愛いなあ……」
「やめろ!」
739: 712 [sage] 2011/12/18(日) 21:58:27.43 AAS
>>738
738(1): 712 [sage] 2011/12/18(日) 21:56:10.45 AAS
>>736
すいません

まず最終的にやりたいことは、PostgreSQL に作ったテーブル内のデータが UTF-8 の日本語で、
その文字列データを取得してコマンドプロンプトに表示するプログラムをHaskellで作る
ということ

Haskell コード内でその文字列データ([Char] 型)を変数に束縛するとことは問題なくできた
というのも、その変数に System.IO.writeFile 関数を適用して得られたファイルを見ると、
正しく UTF-8 エンコードの日本語になっていたから
(当然だけど、writeFile の前に hSetEncoding 関数を utf8 に適用している)

コマンドプロンプトの方は、cmd.exe へのショートカットファイルのプロパティで
[オプション タブ]-[現在のコードページ] を "932" に、
[フォント タブ]-[フォント] を "MS ゴシック" に、
[ショートカット タブ]-[リンク先] を "%windir%\system32\cmd.exe "/K chcp 65001" に設定

このプロパティでコマンドプロンプトを起動し、その上で ghci を立ち上げ、
自作の *.hs ファイルをロードして、関数を評価しているが、
先ほどの [Char] 型の変数を ghci 上で評価すると utf-8 文字がエスケープされる
( ascii 文字以外は \ マークと数字数桁で表示される)

同じ [Char] 型の変数に putStrLn 関数を適用すると、
>>712(正確には >>713)のように日本語部分だけ各日本語文字1字に対して
余計な文字が2つずつ後に付随してくる(まぁエスケープに比べて読めなくはない)

どうすれば、コマンドプロンプト(コンソール)に UTF-8 日本語を正しく表示できるのだろうか

上記の現象はデータベース処理とは関係なく、UTF-8 エンコードされた
Haskell プログラムが書かれたファイル内に直接 s="テスト" と書いて、
それを ghci 上で同じように評価したりしても再現できるため、
>>712 では現象再現のための最低限の情報だけで質問しました
訂正

> [ショートカット タブ]-[リンク先] を "%windir%\system32\cmd.exe "/K chcp 65001" に設定

[ショートカット タブ]-[リンク先] を "%windir%\system32\cmd.exe /K chcp 65001" に設定
794: デフォルトの名無しさん [sage] 2011/12/23(金) 17:44:45.43 AAS
モナドによる抽象化ってのは、だいたい(Monad m) =>で始まる型のある関数を書くこと
具体例はControl.Monadとか見れば
813
(1): デフォルトの名無しさん [sage] 2011/12/23(金) 21:58:23.43 AAS
>>811
811(1): デフォルトの名無しさん [] 2011/12/23(金) 21:51:38.33 AAS
モナドって、ひょっとしてHaskellにおけるデザインパターンのことかい?
モナドの方が抽象度高いけど似たようなもん(だと思ってる)
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.044s