関数型プログラミング言語Haskell

このエントリーをはてなブックマークに追加
915デフォルトの名無しさん:03/12/31 08:45
>911
おらぁ、はぁー、唯の厨房だんが、
そんなら
>DOS窓のHugs.exeは:
>Prelude> print "今日は"
>"\141\161\147\250\130\205"
printではちゃんとエスケープされてんだが、何でだべ?
916デフォルトの名無しさん:03/12/31 09:02
>913
ム板だけではなく、上の中東情勢板でも結構暴れたらしい?(藁)
ム板と中東板を往復するのは、管理人だけなのにって
西村クンが嘆いていたそうな。
ところでヤフーの年間人気サイトで2ちゃんが表彰されていた。
まずはご同慶の至りです。
でも西村くんってちょっとヤバそうな顔してるね。
あの手の顔はいったん切れると無茶苦茶、恐いか、メッタメタ
オモロイ!かどちらかだな。(藁藁)
なんで有名人が精神病の人間に襲われる事件が起こるのか
なんとなくわかってきたぞ。
管理人の中の人も大変だな。
918907:03/12/31 15:49
>>913 アレっぽいね。無視します。それにしても頭悪いなこいつ。
これでまた妄想が膨らむんだろうな…
919デフォルトの名無しさん:04/01/01 15:31
>917,918
>なんで有名人が
???これには、新年早々ワラエタ!
いつから2ちゃんの管理人が有名人になったの?
キャバクラのバーテンが昼間に叩き起こされたような
写真が週刊誌に載っただけで有名人って言うんだぁ。
最近は。(藁藁)
>無視します。これでまた妄想が膨らむんだろうな…
これにもワラエタ、が、どうぞご心配無く…。
でもLuaじゃないよ。(微笑)



いやいや、ひろゆきは十分有名人だろ。
お前みたいな基地害に逆恨み粘着されるくらいだから。
つーか、脳内管理人との脳内バトルに浸られるのは結構ですが、
さっさと施設に帰れよ。一時帰宅は三ヶ日の間しか許されてないんだろ?
921896:04/01/02 02:47
スンマせん。トリビアルでも良いので、破壊的代入を行う方法があったら知りたいなと
思って書きました。実アプリの設定なんかは、多くの場合状態をスイッチさせるような
処理になると思うのですが(例えばフォントの種類を変えたり、表示する色を変えたり)、
そういう場合はどうするのかなと。

代入を使わずに、引数渡しとかにするのかな。
>>921
基本的には引数でわたす。
しかし、大域的な設定を引数で奥まで渡し続けるのは確かにやってられないので、
対処方があって、
1) モナド
2) implicit parameters (GHC拡張)
3) unsafePerformIO
が使われてる。3はほぼ論外として、1が多少面倒だが正当な方法。
俺はoptionなんかにはimplicit parametersを使ってる。名前の通り、
引数として渡さなくてもよくて、呼ぶ側でdinamicに束縛できる。
GHCのuser guideを読むといいだろう。

GUIについては、外部ライブラリを利用するのでIOモナドが多いかも知れない。

> トリビアルでも良いので、
トリビアルの意味わかってる?
923922:04/01/02 06:45
dynamic....
924896:04/01/02 15:44
>>922
どうもありがとうございます。
引数渡しを徹底するのはしんどいなぁと思ってました。GHC を使っているので、
implicit parameters を調べます。ありがとうございます。

>トリビアルの意味わかってる?
トリッキーの間違いでした。
海外掲示板用オフラインリーダーを作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1072883528/

海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。

必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
「互いに素」がわけわからん
_| ̄|◯
小学生?
>>926
最大公約数が1な状態を互いに素という
さすがに最大公約数はわかるよね?
>>928
「互いに素」の数学的な意味は理解してます。
さぱーりなのは nobsun さんのところにある「互いに素」です。
http://www.sampou.org/cgi-bin/cahier.cgi
ここの↓のことか?
ss = (False : True : cycle [False]) : [cycle [m !! n | m <- take n ss] | n <- [1..]]
縦の列を取ってきて横の行を作ってる。
0番目の行がFalse : True : cycle [False]になって
1番目の行は1番目の列を取ってきて繰り返す。cycle [True]
2番目の行は2番目の列を取ってきて繰り返す。cycle [False, True]
3番目の行は3番目の列を取ってきて繰り返す。cycle [False, True, False]
n番目の行はn−1番目までの行のn番目の列を取ってきて繰り返す。
take n ssがn−1番目までの行を取り、m !! nがn番目の列を取る。

n−1番目までの行が互いに素を判定できるとしたら、n番目の列を取ってくれば
n番目の行もn−1番目まで判定できるし、あとは繰り返しで互いに素を判定できる。
この本ってなに?
Haskell:the Craft of Functional Programming (ICSS)
Simon Thompson (著)

発売予定日は 2004/11/30 です。
ただいま予約受付中です。

http://www.amazon.co.jp/exec/obidos/ASIN/0201882957/

一年後?
一年以上前に既出だったのか。
発売予定日もコピペしたらよかったのに。
934デフォルトの名無しさん:04/01/14 16:54
hugsのバグなのかな。
僕の環境では以下のプログラムがおかしな挙動をします。

% cat test.lhs
> main = putStrLn $ "あああ" ++ show 1000 ++ "ああのののののののの"
% runhugs test.lhs
あああ1000ああのののあああ1000ああのののののののの

おそらくhugsの日本語への対応が十分でないためだと思うのですが、
よくわかりません。
他の環境でも同じような不具合が生じるかどうか知りたいです。
そして自分の環境は書かないわけか・・・
936デフォルトの名無しさん:04/01/14 17:17
自分の環境はlinuxでウィンドウマネージャーにはgnomeを使ってます。
ターミナルエミュレーターはxtermです。
hugsのバージョンはNov2002だと思います。
もし、参考になるのなら。
>>936
FreeBSD 5.2-CURRENT, hugs Nov 2002, euc-jp
では期待どおりに動く。
文字コードによってはうまく動くこともあるんじゃないか?

しかし、どうなったとしても、バグと言うべきか。
http://cvs.haskell.org/Hugs/pages/users_guide/haskell98.html
を読むと、stringの中では扱えるようにかいてあるが、
多分2バイト以上で表現される文字の存在を考えてない…
938デフォルトの名無しさん:04/01/14 18:59
そうですか。
どうもありがとうございます。
そうすると、hugsだけの問題ではないのかもしれません。
ちなみに文字コードはeuc-jpです。

あと、素のコンソールでは、もちろん日本語は化けますが、
この問題は生じないようです。

さらに参考までに、ghcでコンパイルして実行した場合にも
問題は生じません。
またrunhugsを使わないでhugsでmainを実行しても
問題なく表示されます。

他のひとも同じような問題が生じてれば、誰かに解決してもらえるかな
と思ったのですが。
ゆっくりと解決策を考えようと思います。
>>938
>  あと、素のコンソールでは、もちろん日本語は化けますが、
だったらshellが悪いんでは。ファイルに吐いてみた?
shellじゃなくてterminalだ。
941デフォルトの名無しさん:04/01/14 20:30
素のコンソールというのが正しい表現かどうかわからないんだけど、
xwindowとかkonとか使わない状態のあの黒い画面のことです。
それだと、日本語は使えないですよね。
わかりにくくてすいませんでした。

ファイルに吐いてみるのは思いつかなかった。
かなり基本的なことなのに。
やってみた結果、正しい結果になりました。

直接表示するとうまくいかないのは何故だろう。
942デフォルトの名無しさん:04/01/14 21:41
あたまでっかちな、実用的でないスレはここですか?
http://www.haskell.org/tutorial/monads.html
> 9.1 Monadic Classes
> The Prelude contains a number of classes defining monads are they are
> used in Haskell.

http://www.sampou.org/haskell/tutorial-j/monads.html
>プレリュードには Haskell でつかうモナドを定義したクラスがいくつもあります

上の英語って何か間違ってるんでしょうか? こう(↓)いうこと?

The Prelude contains a number of classes defining monads which are
used in Haskell.
The Prelude contains a number of classes defining monads *and*
they are used in Haskell.

Preludeにはモナドを定義するclassがいくつもあり、
それらはHaskellでつかわれています。

だと思う。
haskell-mode 1.44 使ってるいます。
if 文の then の下に else を改行してくれないとか、あと case 文とか let
の後の in 等、本などで見る通りのインデントにならないことがあります。
haskell-mode を使ってる人はどうしてますか?
便乗して質問なのですが、haskell-mode 1.44 の以下のキーが
よく分かりませんでした。
これらは何の機能でどういう時に使うのでしょうか?

(local-set-key "\C-cl" 'fume-list-functions)
(local-set-key "\C-cg" 'fume-prompt-function-goto)
(local-set-key [(meta button1)] 'fume-mouse-function-goto)
(local-set-key [C-S-M-mouse-3] 'haskell-doc-ask-mouse-for-type)
(local-set-key "\C-c>" 'haskell-indent-put-region-in-literate)
948デフォルトの名無しさん:04/01/22 15:39
>931
亀レス、失礼。
管理人のオッチャンから、アクセス規制をくらっておりまして…。
ようやく、無罪が立証されたんで質問です。(^^;
今話題の本のHUG版を読んでおりますが、噂ではそのHELLIUM版が
出るとか出ないとか?誰かご存知であれば、教えて下さい。
>>948
あの本は HUG をベースにかかれているのですか? GHC ではなく。
>>949
second editionを見る限り、処理系依存の
処理をするときはHugsを使ってる。
でも言語的にはHaskell98を扱ってるので
GHCでも特に困ることはないと思う。
そろそろ新スレ。
>>1>>2 も張っておきましょうよ。
リンクで飛びやすいように。
あと、紛らわしいですが、次は part 3 のようですね。
この2年の間に日本語の本一冊ぐらいでるかと思ったけど
話しすらでなかったな
>953
漏れも、その内出るさ、と思ってたんだが……。
nobsun書いてくれないかな。
956デフォルトの名無しさん:04/01/29 14:09
HUGのNOV03版に
Integrated .NET support (on Windows).
との注釈が入っていますが、どなたか
.NET環境で使用された方は居られますか?
(確かに02版に比べてWINのバイナリーが異常に
大きくなっています。)
HUG って何ですか? 抱擁ですか?
>>957
テレタビーズを見よ
959デフォルトの名無しさん:04/01/29 18:20
Haskell User's Gofer System
960デフォルトの名無しさん:04/01/29 23:33
ひょんなことからHaskellに興味を持った文系人間です。

ttp://www.sampou.org/haskell/tutorial-j/index.html
などを見て勉強しているのですが、これを見ていくうちに、
Haskellの文法だけでなく、その基礎を成す数学についても
勉強したいと思いました。
そこで、このスレのHaskellな方々にお聞きしたいのですが、
Haskell(又は関数型言語)を理解するために必要な数学の
分野について教えて頂けないでしょうか。自分が必要だと
感じているのは、集合論や論理学です。もし間違いでしたら
すみません。
>>960
ホントに直接の基礎となっている理論は、λ計算とカテゴリー論(圏論)。
集合論や論理学もその二分野のベースみたいなもんだから、おっしゃる
通り必要と言えると思う。

スタートとしては、λ計算と論理学を行ったり来たりしたりして勉強する
のがいいんじゃないかなぁ、と。半分個人的な趣味ですが。
>>961
アドバイスありがとうございます。
まだ「λ計算??圏論??」という状態なのですが、
少しずつ基礎からやってみます。(高校時代に
数学を真面目に取り組まなかった事を後悔&反省
しながら・・)
963デフォルトの名無しさん:04/01/31 18:57
>957
>HUG って何ですか? 抱擁ですか?
懐かしいジョークですね?そう言えば○○××って
あったなぁ。UCLAのトイレにも落書きされてた。
(古賀さんも知ってる?藁藁)
でも、HASKELL.Netってどうやって使うんだろう?
とりあえず.Net SDKかなんか入れないと駄目なんだろうか?

>>960 >>962
高校の数学ではλ計算とかカテゴリー論なんてやらないっしょ。
大堀淳先生も文系だった訳だし。