関数型プログラミング言語Haskell at TECH
[2ch|▼Menu]
[前50を表示]
500:デフォルトの名無しさん
02/12/02 00:31
500get


501:デフォルトの名無しさん
02/12/02 00:41
501got!

502:デフォルトの名無しさん
02/12/02 04:55
新しいhugsにはwinhugsはついてないの?

503:デフォルトの名無しさん
02/12/02 20:57
越田先生の「値しての関数」と「オーバーロードとクラス」の問題が
全然分からない・・・。
誰かお助けを〜

504:デフォルトの名無しさん
02/12/04 11:46
(´-`).。oO(tab-width 4文字にしててはまった。あー悩んだ悩んだ。do で。)

505:デフォルトの名無しさん
02/12/05 00:49
GHC 5.04.2 Released
URLリンク(www.haskell.org)

506:デフォルトの名無しさん
02/12/05 01:40
HaskellはMS Research所属の人間が関わっているのに、
UNIX指向なんでつか?

507:デフォルトの名無しさん
02/12/05 02:41
さあ

508:506
02/12/05 10:28
「GHCは」、だった。

509:デフォルトの名無しさん
02/12/06 09:11
ネタ?

もともとグラスゴ大のプロジェクトで,
大学の研究者を MSR が引っこ抜いてきて,
継続してる研究だからってかんじか.

ってゆ〜か MSR ってマジで全く何の要求も
されない,ってウワサっすけど,本当?

個人的に一番参照してるサイモン博士の頁は↓だったりするが.
URLリンク(research.microsoft.com)

510:デフォルトの名無しさん
02/12/06 14:02
いや、GHCの最新版で一番最初に出るのがUNIX版なもんで

511:デフォルトの名無しさん
02/12/07 10:04
え,ソースは CVS でいつでも最新だよ? とかボケてみる(w

URLリンク(www*haskell.org)
彼らが常用してる開発環境が↑の Windows ビルド用環境ではない,
というだけかな,と.

512:デフォルトの名無しさん
02/12/11 20:50
>502
>新しいhugsにはwinhugsはついてないの?
オレも見つけられない。どこにあるの?

513:デフォルトの名無しさん
02/12/14 15:59
URLリンク(www.haskell.org)
>Emacs in Haskell の計画
これはネタですか?こんなことやってる人いるのかな?

514:デフォルトの名無しさん
02/12/16 06:01
URLリンク(www.haskell.org)
↑これのどこが面白いのか、誰かひとつ解説してくれ。


515:デフォルトの名無しさん
02/12/20 16:48
その面白さを理解できないあなたはHaskellerではなし。
無理にでも笑いなさい。

516:デフォルトの名無しさん
02/12/22 11:30
URLリンク(yzg.3nopage.com)
質問なんですが、これってなんていう本だか分かりますか?
おそらく、Haskell:the Craft of Functional Programmingの和訳だと思われるのですが……
検索しても出てこないもので……

517:デフォルトの名無しさん
02/12/24 10:15
>>516 何処ぞの大学か何かの授業用のテキストじゃないかなぁ.
前の年には毎回配ってたプリントを,次の年は一括して印刷・
簡易製本とかいうパターンって結構あるから

518:デフォルトの名無しさん
03/01/06 23:34
んが

519:IP記録実験
03/01/08 21:43
IP記録実験
スレリンク(accuse板)

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

520:デフォルトの名無しさん
03/01/09 02:32
IP記録するのはいいけど串も規制しないと意味ないよな

521:デフォルトの名無しさん
03/01/09 03:16
フシアナ標準にすればいいのに。
困るのは厨くらいだろ?

522:デフォルトの名無しさん
03/01/09 03:58
>>292
どのIPがどの垢かは、ISPが記録してます。
だから、悪い事すればモデムだろとADSLだろうと捕まりますよ。

523:ぶん
03/01/09 14:08
始めまして。今私はplorogの勉強をしています。問題集に並べ替えのプログラムがあったのですが、よくわからないのでどなたか教えて下さい。

concatenate([],List,List).
concatenate([Head | This Tail],List,[Head | That Tail]):-
concatenate(This Tail,List,That Tail).

sort([],[]).
sort([Head|[]],[Head]).
sort([Head|[THead|[]]],Result):-
Head <= THead, concatenate([Head],[THead],Result).
sort([Head|[THead|[]]],Result):-
Head > THead, concatenate([THead],[Head],Result).
sort([First|[second|Tail]],Result):-
First <= Second,
concatenate([Second],Tail,Temp),
[First|RTail]=Result,
sort(Temp,RTail).
sort([First|[second|Tail]],Result):-
First>second,
concatenate([First],Tail,Temp),
[Second|RTail]=Result,
sort(Temp,RTail).

それで、これをどう繰り返せばいいのかがわからないのです。何かわかる人がいたら教えて下さい。









524:デフォルトの名無しさん
03/01/09 14:21
これからは馬鹿って書いただけで訴えられる可能性がでてきたわけで

525:デフォルトの名無しさん
03/01/09 15:05
既に訴えられているわけだが。ひろゆきが責任を取ってるだけで。

526:デフォルトの名無しさん
03/01/09 17:49
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
──────────────
Keep your thread alive !
スレリンク(software板)l50
──────────────

527:デフォルトの名無しさん
03/01/09 23:41
2ch板一覧
 URLリンク(www.skipup.com)

>728 ( ´∀`)σ)Д`) プニ

528:デフォルトの名無しさん
03/01/10 08:39
そりゃ最初はよほどの大事でもない限りIPを渡すことはしないだろう、
でも物事はだんだんエスカレートしていく物、そのうち密告とかも「誹謗中傷」として
IPを渡すようになる、、、

529:デフォルトの名無しさん
03/01/10 10:39
最近、腐れさん見ないね・・

530:デフォルトの名無しさん
03/01/10 11:09
★ ひろゆき重大な決意を語る。
スレリンク(news板)l50

531:デフォルトの名無しさん
03/01/10 11:55
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。
勢いで上告なんかしても一発で上告却下(門前払い)だよ。

二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
URLリンク(www.m-net.ne.jp)

ようするに上告しても今の制度では100%無駄。
これで完全終了ってことか。


532:デフォルトの名無しさん
03/01/10 12:24
>>754
まともじゃない掲示板なんて存在意義ないね。
そういうことならここじゃ意味ないと思うが。

533:デフォルトの名無しさん
03/01/10 13:16
スレタイの日本語、微妙におかしいね。

534:デフォルトの名無しさん
03/01/10 15:37
(前略)815様

落ち着け。お前の感じている感情は精神的疾患の一種だ。
静める方法は俺が(中略)
鯖の前で両目をひんむいて「びっくりするほどユートピア」と唱えながらキュウリを(以下略

535:デフォルトの名無しさん
03/01/10 17:05

なつかし。

536:デフォルトの名無しさん
03/01/10 23:26
ひろゆき
お前にはがっかりした。
2chにも。さいなら。

537:デフォルトの名無しさん
03/01/10 23:34
全部ミギーが書きましたって言えば問題ナッシング

538:デフォルトの名無しさん
03/01/11 00:50
ううん、既存のTripodとかじゃなくて新たにそういうシステムを
作っちゃうの。

どう作るかはわかりませんw

しかし嵐とか不愉快な対策には「こいつがむかつく」と
ひとり1票で投票してきめます。
そしてその人はもうカキコ禁止。

どうやってカキコ禁止にするとかそういうのはわかりませんw

539:デフォルトの名無しさん
03/01/11 00:57
記録されてる分なにかと現社会より厳しくなった感じします、

540:デフォルトの名無しさん
03/01/11 12:22
とりあえず、訴えられたらスレ住人全員で土下座しよう。
ていうか、それくらいの気概で書き込め。

今までひろゆきに丸投げしていた負担を、個人個人で背負えばイイだけの話だろ。
ここからが本当の市民運動のスタートだよ。

541:デフォルトの名無しさん
03/01/11 13:21

>1 :ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ :03/01/08 17:13 ID:???
>そんなわけで、qbサーバでIPの記録実験をはじめましたー。

IP記録実験
スレリンク(accuse板)l20

IP記録実験PART2
スレリンク(accuse板)l20

これまでのあらすじは あたりに誰かお願い。


542:デフォルトの名無しさん
03/01/11 13:47
マターリしてるのにスレ違いな質問はどーかと。
それに、会社立ち上げたんだし、たぶんにその辺からだろ〜ね。

543:デフォルトの名無しさん
03/01/11 16:35
2chをはけ口にしていた人はどこで憂さ晴らしをするのか少し興味ある

544:デフォルトの名無しさん
03/01/11 16:42
漏れはどこもさくさく行ける。
プロバ次第だと思われ。

545:デフォルトの名無しさん
03/01/12 00:47
漏らすバカが出るだろうというのが一番の問題なんだよ

546:デフォルトの名無しさん
03/01/12 00:56
ごめん、なんで「それを言うなら」になるのかがわからん(^_^;)
後半の批判は批判でいいと思うんだけど、書き込む人間の自己責任ってのとどう関係してるの?

547:デフォルトの名無しさん
03/01/12 11:06
だろ。
461みたいなことばっか起こるだろ。
ろくなことなないな。2ちゃんなんか。
それもやられ損かなぁ?
訴えてやればいいのに。

548:デフォルトの名無しさん
03/01/12 15:22
>>1-517
荒らされる前までのリンク。
なんでプログラム技術板で私が覗いてる全スレでやられてるんだか・・・。

549:デフォルトの名無しさん
03/01/12 20:37
全ての責任は当事者同士で解決しろってこと
人が書き込んだものに対して賠償するのもアホらしいしな
ごく当り前な考えだわな
騒ぐ程のもんでもない
わかるか?

550:デフォルトの名無しさん
03/01/12 20:41
プチ法廷ごっこでは、詭弁で開き直る2ちゃん擁護派は強い。
でもリアル法廷ではボロ負け。



551:デフォルトの名無しさん
03/01/12 20:49
過度の期待は禁物です。

552:山崎渉
03/01/13 18:34
(^^)

553:デフォルトの名無しさん
03/01/13 22:25
そんなに世の中が嫌いか。
年収600万円に満たない屑でも愉快に暮らせる楽しい世の中じゃないか。
いちいち爆破するな。

554:デフォルトの名無しさん
03/01/14 10:32
Functional Programming With Haskell
URLリンク(www.amazon.com)
こんな本が出てました。誰か読んだ人はいますか?

あと4月いは損氏の本。といっても仕様書そのままかもしれないけど
Haskell 98 Language and Libraries : The Revised Report
URLリンク(www.amazon.com)

555:山崎渉
03/01/15 17:56
(^^)

556:デフォルトの名無しさん
03/01/17 00:03
標準ライブラリ関数のクイックリファレンス本って無いのかな?
入門本は取り敢えず読んだから、
簡潔な説明と簡単な使用例が有ると嬉しいんだけど。

>>554の本は、ちょっと違うみたいだし、
1969年にならないと手に入らないって書いてある……バグってるな。


557:デフォルトの名無しさん
03/01/17 10:46
>>554 後者って
URLリンク(www.haskell.org)
↑の最初にある Report ふたつの PS・PDF を
印刷製本したものではとか思われ

558:デフォルトの名無しさん
03/01/17 14:39
URLリンク(research.microsoft.com)

これだろ

559:山崎渉
03/01/23 20:13
(^^)

560:デフォルトの名無しさん
03/01/24 10:19
圧縮ツール bzip2 の作者 Julian Seward さん、Haskellerになったんですね。
URLリンク(sources.redhat.com)


561:デフォルトの名無しさん
03/01/25 15:44
つってもなー、Haskellerにはlurkerが多いらしいからな

562:デフォルトの名無しさん
03/01/26 15:59
www.haskell.org内にも Seward氏の名前はたくさん出てるから、lurkerではないのでは?

563:デフォルトの名無しさん
03/01/26 20:59
今日からHaskell使ってプログラミング始めます。
とりあえずHP作ってみた。
URLリンク(haskell.tripod.co.jp)

564:デフォルトの名無しさん
03/01/27 00:30
>>563
(・∀・)イイ!
応援しますよ

565:デフォルトの名無しさん
03/01/27 15:15
>>563
もう解決したんだろうか。":?"

566:デフォルトの名無しさん
03/01/27 16:57
>>564
心強いです。感謝。
>>565
解決しました。感謝感謝。

567:デフォルトの名無しさん
03/01/31 15:57
荒すな

568:デフォルトの名無しさん
03/02/03 22:53
WinHugsでテンキーの'/'が効かない件、
バグか仕様か知らないけど、取り敢えず直してみた。

Windowsでプログラム組んだ事無いんで、変な事してる
かもしれないけど、一応動いたよ。

*** Wintext.c.origTue Aug 6 07:29:18 2002
--- Wintext.cMon Feb 3 21:20:30 2003
***************
*** 2497,2502 ****
--- 2497,2506 ----
goto otherKey;
}

+ if (readKey.KeyCode == '/') {
+ readKey.IsExtended = 0;
+ }
+
return readKey;
}



569:デフォルトの名無しさん
03/02/05 16:32
template haskell まだあ〜?

570:デフォルトの名無しさん
03/02/12 03:53
Hoshkell

571:デフォルトの名無しさん
03/02/23 03:23
素朴な疑問Haskell使ってる人たちって情報系の人ばかり?

572:デフォルトの名無しさん
03/02/26 20:26
【何処も】情報科学総合スッドレ【板違い】
スレリンク(rikei板)l50




573:デフォルトの名無しさん
03/03/12 16:17
11 March 2003 GHC 5.04.3 Released

574:デフォルトの名無しさん
03/03/12 17:10
どこが変わったのかわかりゃしねぇ。

ところで最近寂れてるな。
やっぱもうネタないのかね。

575:デフォルトの名無しさん
03/03/12 19:03
Haskellコミュニティは議論は盛んなんだけどなー

576:デフォルトの名無しさん
03/03/12 22:05
はやく日本語で本出ないかなー。


577:デフォルトの名無しさん
03/03/13 01:50
lazy evaluation ってなんですか?

578:
03/03/15 17:45
遅延評価 (lazy evaluation)
  遅刻の回数を基準にボーナスの額を決めること。
URLリンク(www.nurs.or.jp)

579:デフォルトの名無しさん
03/03/15 23:18
>>577
値が実際に必要となるまで引数の評価を遅らせること。
要求呼び出し(call by need)

580:デフォルトの名無しさん
03/03/15 23:23
命令型言語ではほとんど実現されていない。
引数の評価は何らかの副作用を伴うことがあり、
引数がいつ必要になるか正確に知るのは難しい。
また、要求呼び出しはスタックによる実現が難しい。

581:デフォルトの名無しさん
03/03/16 00:47
URLリンク(www.generic-haskell.org)
ここで作られてるコンパイラを使っている人はいますか?

582:デフォルトの名無しさん
03/03/16 23:20
>>579-580
説明ありがとうございます。

583:デフォルトの名無しさん
03/03/17 12:38
Haskellerの中にはまたストリームベースを唱えている人もいるようだが

584:デフォルトの名無しさん
03/03/17 23:18
URLリンク(www.sampou.org)

585:デフォルトの名無しさん
03/03/18 13:48
意味不明でっす

586:デフォルトの名無しさん
03/03/18 20:49
>>583
この板にも居ますよ。たぶん数学屋の方でしょうけど。

ところでデータ構築子って理論的にカリー化できないのでしょうか?
最弱頭正規形を作ればいいのだから可能なのでは?と思いますが。

587:デフォルトの名無しさん
03/03/19 13:58
可能だからといって言語仕様にいれるとは限らないでしょう
その辺は言語設計上の様々な観点を
考慮しながら決定するということで

588:デフォルトの名無しさん
03/03/20 11:04
> 586
カリー化されてるんじゃないの?

589:デフォルトの名無しさん
03/03/20 12:49
余裕でっす

590:デフォルトの名無しさん
03/03/20 20:56
されているね、十分。
----code
data Tree a = Node a [Tree a]
instance (Show a) => Show (Tree a)
 where show (Node item xs) = show item ++ show xs
-----実行
*Main> :type Node 1
forall a. (Num a) => [Tree a] -> Tree a
*Main> Node 0 (map (Node 1) (map (map (flip Node [])) [[2,3],[4,5]]))
0[1[2[],3[]],1[4[],5[]]]
-----
それとも、もしかして、こんなん?
-----code追加
test (Node a) = a
-----予想実行
*Main > test (Node 0)
0
*Main > test (Node 1 [])
1
-----
上はともかく、下はあってもおかしくないし、欲しいな。
あとで少し探してみるか…。

591:586
03/03/23 22:27
>>588-590
すでに可能だったのか・・。
すまんかった。

592:デフォルトの名無しさん
03/03/24 02:45
Windows版のHugsって、ドキュメントのバージョンがずれてない?
.hlp .pdf .htmlが古くて、.chmだけちょっと新しいような?

あと、Trexライブラリがうまく使えないんだけど、
もしかして再コンパイルが必要なのかな?

Hugs mode: Restart with command line option +98 for Haskell 98 mode

Reading file "C:\Hugs98\libraries\Hugs\Prelude.hs":
Reading file "C:\Hugs98\libraries\Prelude.hs":
Type :? for help
Prelude> :load Hugs.Trex
Reading file "C:\Hugs98\libraries\Hugs\Trex.hs":
ERROR "C:\Hugs98\libraries\Hugs\Trex.hs" - Illegal export of a lone
data constructor "EmptyRec"


593:デフォルトの名無しさん
03/03/25 08:06
はあー、MLはまだ何とかなりそうだが、haskellさっぱりわかんね。

594:デフォルトの名無しさん
03/03/25 15:07
漏れは逆にMLの構文がわけわからん、つーか好みに合わん。
Haskellも一部複雑だけどね。

URLリンク(www.teu.ac.jp)
とか見て動かしてみれば慣れるよ。

595:デフォルトの名無しさん
03/04/05 15:58
haskell.org維持費用捻出できなくなったのかよ

596:デフォルトの名無しさん
03/04/05 16:02
ワラタ
2ちゃんねらーで金出してやれよ。
トップページのλの隣にモナー飾ってもらえるかもしれんぞ。


597:デフォルトの名無しさん
03/04/05 17:32
>>595
April fool じゃないのか?

598:デフォルトの名無しさん
03/04/05 20:53
そうなら、もう消すだろ

599:デフォルトの名無しさん
03/04/06 12:06
1 Apr 2003 のニュースだから、永久保存かも

600:600
03/04/08 17:22
でも、去年は April fool なかったみたい age

601:山崎渉
03/04/17 15:36
(^^)

602:デフォルトの名無しさん
03/04/25 17:31
ホシュ

603:デフォルトの名無しさん
03/04/27 01:31
このゴールデンウィークにでも勉強したいと思いまフ。

604:デフォルトの名無しさん
03/04/27 05:18
これ、行列の対角化とかできますか?

605:デフォルトの名無しさん
03/04/27 14:04
対角化の計算を自分で書けばもちろんできる。
行列計算用のモジュールも公式サイトから辿れる。
あとはやりたい本人の裁量次第でいくらでも。

606:デフォルトの名無しさん
03/04/27 17:03
>>605
アリガd

607:デフォルトの名無しさん
03/04/27 21:58
初期のhaskellはschemeで作られたって本当?
昔Yale大学のサイトになんか書かれてたけど。

608:デフォルトの名無しさん
03/04/29 08:28
けど・・けど・・

609:デフォルトの名無しさん
03/04/29 14:15
Common Lisp?

610:動画直リン
03/04/29 14:26
URLリンク(homepage.mac.com)

611:デフォルトの名無しさん
03/05/05 17:03

f x = let a = 1; b = c g
y = exp2
in exp1

f x = let a = 1; b = c
g y = exp2
in exp1

612:デフォルトの名無しさん
03/05/14 12:10
最強

613:デフォルトの名無しさん
03/05/15 17:49
logoが変わった

614:デフォルトの名無しさん
03/05/16 14:53
前よりよくなったねえ

615:デフォルトの名無しさん
03/05/16 14:58
そ…、そうか?
かなりビミョーなデザインだと思うが。

616:デフォルトの名無しさん
03/05/16 23:07
λの回りにゴミが付着してる様に見える

617:デフォルトの名無しさん
03/05/17 00:44
:: = 静的型付け
-> = 高階関数
∀ = 多相
=> = 型クラス
>> = モナド

つーことかいな。


618:デフォルトの名無しさん
03/05/17 01:29
そう考えると凝ってるな

619:デフォルトの名無しさん
03/05/20 07:11
凝ってる、っつーか、まんまやん。

620:デフォルトの名無しさん
03/05/22 16:57
CGAの話止まってるけど、なかなかまとまらんのかね。

621:デフォルトの名無しさん
03/05/26 19:20
>>619
featuring static typing, higher-order functions,
polymorphism, type classes and monadic effects

にそれぞれ対応してるという解釈のようだけどそれ分かって言ってんの?


622:山崎渉
03/05/28 12:56
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎―◎                      山崎渉

623:デフォルトの名無しさん
03/05/30 18:14
結局、wxWindowsのバインディングで終わりそうな気配だな

624:遅報
03/06/02 00:56
ghc major version up

625:デフォルトの名無しさん
03/06/02 06:41
6.0の目玉はTemplateということになるのかな?
URLリンク(www.haskell.org)

626:デフォルトの名無しさん
03/06/02 17:06
教えて君で申し訳ないのですけど、他の関数型言語と比べて Haskell のどのあたりが
(・∀・)イイ! or (゚д゚)マズー なのですか?
できれば、いい面と悪い面の両方を聞いてみたいです。

627:デフォルトの名無しさん
03/06/02 17:37
>>626

(・∀・)イイ!
実装がいくつかある。

(゚д゚)マズー
末尾再帰じゃない。


628:デフォルトの名無しさん
03/06/02 17:45
○:数少ない遅延評価な言語の一つ
△:clean は遅延/正格の切替えができるらしいが、Haskellは…

629:デフォルトの名無しさん
03/06/02 18:58
>>627 実装がいくつかある。
SchemeやSMLも実装はいくつかあるが。
個々の実装の間に互換性がなければ、却って混乱するのでは?

630:Lazy eva.
03/06/02 21:31
call by need
必要なら呼んで

631:デフォルトの名無しさん
03/06/02 21:39
>>627
>(゚д゚)マズー
>末尾再帰じゃない。
lazyだと末尾の最適化はいらないんじゃなかった?
おれが勘違いしてるのかも知れないけど

632:デフォルトの名無しさん
03/06/03 10:04
(´-`).。oO( Haskell の (・∀・)イイ! 点がこの程度しか挙がらなくていいのだろうか)


633:デフォルトの名無しさん
03/06/03 22:56
いいところ:
    純粋な関数型言語
    厳格な型チェック
    比較的豊富なライブラリ
    遅延評価
わるいところ:
    遅い
    flatなarrayが無い

634:デフォルトの名無しさん
03/06/07 03:00
スレの伸びが lazy ...

635:デフォルトの名無しさん
03/06/07 23:24
>>634
…実はこのスレの定義は既にすべて準備されていて、誰かが問いを放つとレスが見えるようになる?

636:デフォルトの名無しさん
03/06/09 12:38
Haskell: The Craft of Functional Programming
これの新しいバージョンがでるっていううわさは本当なの?
Ruby系サイトのどこかで書いてあった気がするのだけど。

637:デフォルトの名無しさん
03/06/09 13:06
URLリンク(www.amazon.co.jp)


638:637
03/06/09 13:07
あ、だめだった。Amazonで検索すれ。

639:デフォルトの名無しさん
03/06/09 22:20
>>635
逆かも?
問いが放たれてから、必要に応じて定義を考える。

640:デフォルトの名無しさん
03/06/11 00:32
問に対して常に同じ答えが返ってきます。

641:デフォルトの名無しさん
03/06/11 09:51
文脈が変っていても同じ質問に対しては同じ答えが返ってきます。

642:デフォルトの名無しさん
03/06/11 09:52
>>640
問いの系列がmonadな演算で関連付けられてるので、
単独の問いに対しては当てはまらないカモッ!

643:デフォルトの名無しさん
03/06/12 18:05
>>641
それではガイシュツ処理が出来ませんので、
不具合発生です。

644:モナd
03/06/16 12:58
 ΛΛ
(´d`) .。o〇(monad∈モナー?)

645:デフォルトの名無しさん
03/06/17 18:46
モナドは、人間から見て、副作用を扱ってるコードとほとんど
同じように見える。
人間にとって副作用のあるコードと同じように見えてる
とすれば、モナドって何の意味があるの?
人間が関数プログラミングしやすくするために副作用が
禁止されてるんじゃ無かったの?

646:デフォルトの名無しさん
03/06/17 18:51
「ある」と「あるように見えるけどない」は違うだろ…

647:_
03/06/17 18:53
URLリンク(homepage.mac.com)

648:デフォルトの名無しさん
03/06/17 18:55
>>646
違うけど、プログラマから見て同じように見えてるんだったら
プログラマにとっては同じでは?
コンパイラにとっての意味しかないのですか?

649:デフォルトの名無しさん
03/06/17 20:07
関数型の場合、コンパイラにとっては「ない」方が都合がいいけど、
人間にとってはあなたの言う通りあるように見えた方が扱いよいわけだ。
で、「ない」ものをあるように見せるモナドは、便利ってことにならない?

それならモドキじゃなくて本物の副作用を認めてもいいじゃんという話はまた別

650:デフォルトの名無しさん
03/06/17 20:29
>>649
> 人間にとってはあなたの言う通りあるように見えた方が扱いよいわけだ。

それは関数プログラミングに反するから、関数プログラミング
の立場から見た場合、扱いが良いとは言えないんじゃないですか?

651:デフォルトの名無しさん
03/06/17 20:29
話が逆なんじゃないか?モナドは副作用をわざわざあるように見せるためのものでもないだろう。

652:デフォルトの名無しさん
03/06/19 21:09
a <- hoge
ってやったら、あとは a は見るからに完全に副作用の無い
関数型プログラミングであつかうわけだから、
モナドがあるおかげで関数型の意味がなくなるなんてことは全然無い。

結局モナドって、
副作用や、コードを書いた時点では決まらないものを
普通の関数の引数なんかにつかって破綻するのをさけるために、
型の前にMとかつけてそのままじゃつかえなくする仕組みでしょう。

653:デフォルトの名無しさん
03/06/24 08:16
日本語扱えるhaskellの処理系ってありますか?

654:デフォルトの名無しさん
03/06/24 09:06
いやらしいリンク集作った
URLリンク(homepage3.nifty.com)

655:デフォルトの名無しさん
03/06/26 07:32
Haskellはじめますた。
面白いですね〜
・リストの内包表現に萌えた
・無限データ構造萌え
 numForm n = n : numForm (n+1) とか。
 あるもんをあるように書いたらいいって言うのがすどい。

詳しい方々、わかんないことがあったら教えてください。
アフォなんですが何とかがんばって基本を理解してから、
モナドを通って詳しい皆さんのところにゆきつきますので。

いまは、組み込み関数?を調べるのに困ってたりします。
IntをDoubleに変換するのってどうするの?
IntとIntegerの変換どうするんでうか?
とか、わからん。
「**」が解らなくて困ってた事も。
(-1)で懲りて、あらゆるところに括弧つけまくりのコードを書いてたり。

656:デフォルトの名無しさん
03/06/27 10:48
>>655
fromIntegral :: forall b a. (Num b, Integral a) => a -> b
toInteger :: forall a. (Integral a) => a -> Integer
fromInteger :: forall a. (Num a) => Integer -> a

657:デフォルトの名無しさん
03/06/27 13:05
今年もICFPの時期が来ましたがみなさんいかがお過ごしですか?

658:デフォルトの名無しさん
03/06/28 13:34
>>655
$をつかうと
f (g (h x))
みたいなのを
f $ g $ h x
とかけて括弧削減。

659:デフォルトの名無しさん
03/06/29 21:21
初心者質問いいですか?
GHCで、API、例えばIsDBCSLeadByte Char -> Bool を使いたいと思ったらどうすればいいのでしょう

660:貧乏脱出!これであなたはお金持ち
03/06/29 21:30
普通に働いてお金持ちになれるのは全体の1%のみって本当!?
本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
URLリンク(www.adultshoping.com)(直リン不可)

///////.......///////////////////////////

661:デフォルトの名無しさん
03/06/29 22:10
誤解があるようだが、モナドは純粋な関数型言語が
手続き風にコードを書くためのシンタックストリックに過ぎない。
拡張でもなんでもない。
(もちろんシーケンシャルのオプションと使われることが多いわけだが)


662:デフォルトの名無しさん
03/06/29 22:22
         _,..............._,.......
      ,ノ⌒::::::::::::::::::::::::::::::::::::⌒ヽ_
     _ノ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヾ、
    (::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::)
   _ノ:::::::::::::::;ヘ::::::::::ノ⌒ヽ:::::::::::::::::::::::::::::::::)
  (::::::::::::::::::/   ̄ , ‐-、 |::::::::::::::::::::::::::::::::)     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (:::::::::::::/ヽj _/ -‐-、 |::::::::::::::::::::::::::::::::)    |  トリックだ。
   ):::::::::ヾllli_、_,;iiiillllllllli <::::::;へ:::::::::::::::::(   | 
   (::::::::::::/`i´ ,└=゚'┘  |::::| 6 |:::::::::::::::::::}  <  副作用があるように見えているに
    `〜、 ゝ| _コ、_、 /|::::| ソ/::::::::::;〜"    |  過ぎん。
      ヾ|||ll|||||||||||l〉|  三ー'〜〜"         | 
         |||:二三|||| l  ,三   ヽ、          \______________
         |l  ⌒ ||| ://     ヽ=、-、_
       |l、:( : : ||/ /       ヽ, |    ̄\
      /   ̄   /        ノ /       \

663:デフォルトの名無しさん
03/06/29 22:37
サータン,サータン!

664:デフォルトの名無しさん
03/06/30 00:06
ところで、日本語訳のページが見れなくないですか??

665:デフォルトの名無しさん
03/06/30 02:53
>>659わかるひといませんか〜

666:デフォルトの名無しさん
03/06/30 07:59
>>664
URLリンク(www.sampou.org) ならサーバマシンの調子が悪いそうです

667:デフォルトの名無しさん
03/06/30 18:04
>>666
復活したようです。

>>665
いないんじゃないですか。人少なそうだし。
俺は、外界との繋がりはsystem :: String -> IO ExitCodeくらいしか知らない。

668:659=665
03/07/02 07:35
検索の結果、MessageBoxを呼んでいる例は見つけました。(真似たらできました)
でも、*.hiをバイナリ検索しても、IsDBCSLeadByteはインポートされて無いようです。
(CharNextとか、代用できそうなAPIも同様)

これは、Haskellで全角文字を扱うなというお告げでしょうか…

669:デフォルトの名無しさん
03/07/02 08:58
>>668
IsDBCSLeadByteってwindowsのAPI?
そういうものはそのライブラリとリンクしてつかうんじゃないのかな。
haskellに入ってるわけがないというか。

URLリンク(www.haskell.org)
のInterfacing with other Languages and Systemsとか。

670:デフォルトの名無しさん
03/07/02 13:46
>>668
>(真似たらできました)
おー、あなたも私から見たらすどい。
よろしければ、MessageBoxを出すコードをこのスレに張って
共有していただければありがたいです。

671:デフォルトの名無しさん
03/07/02 19:54
>>669
いや、GHC(Win版)には既にWin32 API(の一部)のHaskell用インポートが付いてるんですよ。

>>670
どーせ丸写しなので、いくらでも共有しましょう。

import Win32
main = messageBox nullHANDLE "Text" "Title" mB_OK

たった二行。
コンパイル時に -package win32オプションが必要です。
(win32ディレクトリ以下はデフォルトでは見てくれないので)

↓見つけたページ
URLリンク(www.haskell.org)

なお、同じようにしてMessageBeepを呼ぼうとしましたが、挫折中です。

672:デフォルトの名無しさん
03/07/02 20:21
>>669
あ、でもリンク先のFFIとか使えばできそう?できるのか俺に?
…ありがとうございます

673:デフォルトの名無しさん
03/07/05 01:11
FranTkを使った事のあるかたは居られますか?
使おうとしたけど何だかよくわからんかった。(窓使いです)

674:デフォルトの名無しさん
03/07/06 22:26
>659
URLリンク(www.sampou.org)
>6.1.2 文字と文字列
>文字型 Char は列挙型のひとつで、16 bit の値からなり、Unicode 標準 [10] に準拠する。
Unicodeなので要らないのでは?
ちゃんと実装されているならばだが。

675:デフォルトの名無しさん
03/07/07 10:39
> ちゃんと実装されているならばだが。

内部ではUnicodeかもしれないけど、全角文字をgetCharで読むと二回に分けて来るんですよ…

676:デフォルトの名無しさん
03/07/07 17:07
>>674
Unicodeとその(バイトでの)エンコーディングは別物だ。

677:デフォルトの名無しさん
03/07/08 02:44
>>676
実際
I/O functionsがbyte読んでそれをかえすだけだから、
Charが16ビットである意味がないんだよな。
謎の設計。

678:デフォルトの名無しさん
03/07/14 01:55
return () << [1,2,3] が [1,2,3] を返すのは何で? ()モナドの定義?

679:デフォルトの名無しさん
03/07/14 01:56
ごめん。わかってると思うけど << じゃなくて >> の間違い

680:
03/07/14 03:29
>>678
リストはモナドだから。

681:デフォルトの名無しさん
03/07/14 03:58
そういや、漏れもIOモナドはちょっと分かったつもりだけど、
なんでリストがモナドなのがいまいちよく分からん。

682:デフォルトの名無しさん
03/07/14 04:22
m がモナドのとき return () << m が m になるのはなんで? ()モナドの定義?

683:デフォルトの名無しさん
03/07/14 04:29
また >> を間違えて << にしてまった

書いた後気づいたのだが return [3,4] >> [1,2] も [1,2] 返すのか
() がポイントではなく return の方がポイントだった
かきまぜてスマン

684:デフォルトの名無しさん
03/07/14 04:42
return 1 >> [1,2] でも return 'a' >> [1,2] でも同じだな

685:デフォルトの名無しさん
03/07/14 14:12
>>682
 >>の型からわかる型推論。

686:デフォルトの名無しさん
03/07/14 14:13
もっというと()はどのモナドでも返せる。

687:デフォルトの名無しさん
03/07/14 18:52
getChar って結局何返すの?
参照透明性からいって 'a' が入力されたからといって IO 'a' が返るわけじゃないんだよね
たびたび出る話題でスマンが毎回納得にいたらない

688:デフォルトの名無しさん
03/07/14 19:05
IO

689:デフォルトの名無しさん
03/07/14 19:27
>>687
意味不明。IO Charだけど?

690:デフォルトの名無しさん
03/07/14 20:13
>>687
強いて言えば IO 'a'だろうが、それで参照透明性に何の問題が?

691:デフォルトの名無しさん
03/07/14 22:08
そもそもモナドを理解するのにIOモナドから入る,っていうのが間違っている
という気がする.モナドを理解するためには,次の論文を読むのが吉かと.

Wadler, P. : Monads for functional programming

692:デフォルトの名無しさん
03/07/14 22:22
>>691
URLリンク(www.research.avayalabs.com)
ここにあるやつ?

693:デフォルトの名無しさん
03/07/14 23:45
>> 692
そうそう.

694:デフォルトの名無しさん
03/07/15 00:39
関数型では同じ関数なら何回呼んでも同じ値が返る建前では
実は暗黙のworldが渡されていて暗黙の新しいworldも返されている?

695:デフォルトの名無しさん
03/07/15 00:47
モナドって、食べ物じゃなかったのか。

696:デフォルトの名無しさん
03/07/15 01:05
理解するのに論文を読ませる必要がある事自体に
何か問題があるような気もするがー。

697:デフォルトの名無しさん
03/07/15 01:28
今印刷して読んでます…辞書片手に…どなたか、厨房向けに噛み砕いて説明してホスィ

698:デフォルトの名無しさん
03/07/15 01:31
>>697
         _,..............._,.......
      ,ノ⌒::::::::::::::::::::::::::::::::::::⌒ヽ_
     _ノ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヾ、
    (::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::)
   _ノ:::::::::::::::;ヘ::::::::::ノ⌒ヽ:::::::::::::::::::::::::::::::::)
  (::::::::::::::::::/   ̄ , ‐-、 |::::::::::::::::::::::::::::::::)     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (:::::::::::::/ヽj _/ -‐-、 |::::::::::::::::::::::::::::::::)    |  トリックだ。
   ):::::::::ヾllli_、_,;iiiillllllllli <::::::;へ:::::::::::::::::(   | 
   (::::::::::::/`i´ ,└=゚'┘  |::::| 6 |:::::::::::::::::::}  <  副作用があるように見えているに
    `〜、 ゝ| _コ、_、 /|::::| ソ/::::::::::;〜"    |  過ぎん。
      ヾ|||ll|||||||||||l〉|  三ー'〜〜"         | 
         |||:二三|||| l  ,三   ヽ、          \______________
         |l  ⌒ ||| ://     ヽ=、-、_
       |l、:( : : ||/ /       ヽ, |    ̄\
      /   ̄   /        ノ /       \

699:デフォルトの名無しさん
03/07/15 06:43
>>682
return () >> [1,2,3]
後ろがリストなので、これはリストモナド
returnを外して、>> を >>= に変換すると、
[()] >>= (\x -> [1,2,3])
前のリストの要素それぞれに対して後ろの関数を呼んで、その結果を連結したものがこの式の値なので、
(\x -> [1,2,3]) ()
[1,2,3]


700:デフォルトの名無しさん
03/07/15 08:15
>>694
その通り。IO a はHaskellの側から見ると、
data IO a = IO (World -> (a, World))
このような構造になっていて、実行結果がIOだった場合に、表示する前にWorldが渡されて実行される。
実際はそんな面倒なことしていないと思うけどね。

701:デフォルトの名無しさん
03/07/15 08:48
半分ぐらい読みました…まさに>>698のおっしゃる通り…それ以後の式を全部λとして渡して、
でっかい合成関数を組み立てて、最後に一括して実行してるようなイメージでいいのでしょうか?→モナド
(と同時に、実装までそうなってないよなあと信じたい)

702:デフォルトの名無しさん
03/07/15 09:03
>>698
モナドを使えば副作用は「ある」というべきだろう。

たとえばモナドを利用したカウンタを利用して、
あるいは、ファイルに1, 2, ...と書き込んでループをつくれば、
あきらかにそこには副作用があるわけだ。

むしろWorldを変化させながら渡し続けるという発想の転換で(言語に対し)
無いように見せかけているだけだ。人間にとっては副作用は存在する。

703:デフォルトの名無しさん
03/07/15 09:26
>>702
あるように見せかけているだけだろ?
そうじゃなきゃモナドの意味がない

704:山崎 渉
03/07/15 09:34

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

705:デフォルトの名無しさん
03/07/15 11:33
>>701 よいはず。
あと、遅延実行されるのでそう実装しても効率は悪くならないと思う。

706:デフォルトの名無しさん
03/07/15 18:29
>>703
逆だよ。というか循環論法。

そもそも関数型言語には本来副作用は存在し得ない。状態ってものが無いからね。
しかし、特に外部とアクセスするプログラムのためには副作用が必要だ。

関数型言語と、その副作用をともなう処理を、
副作用の種類(IOとか)毎の(内部状態を保持する)モナドを導入することで*分離*してるだけだ。

707:デフォルトの名無しさん
03/07/15 18:34
>>705
701のイメージはあってるが、

>  あと、遅延実行されるのでそう実装しても効率は悪くならないと思う。

遅延実行だからこそそういう式の組み立てと式の保存をやらないといけないわけで、
むしろ遅延評価だからと言ってそういう実装をするととんでもないことになる
というべき。

通常の式の評価でも下手に(末尾)再帰すると未評価の式の列が莫大になって
すぐオーバーフローする。

708:701
03/07/15 21:26
大雑把に読みました。後半のパーサは読み飛ばしましたが…
データ型としてのモナドは、要するにC++のクラスtemplate、のようなもの…ですよね?
ということは、IO a -> aな関数が記述不可能なのは、言語の外を相手にしたIOモナドに限った制限で
一般的にはそんな制限は無い、で合ってます?

簡単なサンプルコードどこかにないかな…

709:デフォルトの名無しさん
03/07/15 21:44
>>708
リストから成分を抽出できるでしょ。

710:デフォルトの名無しさん
03/07/16 00:34
>>709
ありがとです。
で、>>681氏と同じ疑問に行き当たるわけですが…
リストが状態を持っているとは思えないのですが、なぜモナド?
(a, b)とか他の一般の構造化型はモナドじゃ無いですよね。

711:デフォルトの名無しさん
03/07/16 01:00
>>710
リストを丸ごと全部で値と思わずに一部だけ更新したいんじゃない?
一部だけ更新するような操作には普通副作用がある。

…違うかな?

712:デフォルトの名無しさん
03/07/16 01:52
リストは >>= と return がモナド演算の法則を 満たしているからモナドなんじゃないかな
(a,b)とか一般の構造型はコンテナの中身の個数が1個ではない定数なのでうまく
モナド演算を定義できないような気がする
リストモナドの中身は任意個数。IOモナドは1個固定。

713:デフォルトの名無しさん
03/07/16 02:29
眠れない…
えーと、要するに、必然性は無いけど、
モナドということにすると [a] >>= (\e -> return (f e)) みたいな便利機能として使えるので
モナドということにしてある、ということですか。

>>711
よく見て無いのですが、ライブラリリファレンスにMutable ArraysとしてIOArrayが書かれてますので、
もしリストモナドで一部の更新が可能なら、こんなもの用意しないと思うので、それは違う気が
(我ながら無茶苦茶な論法だ…)

714:デフォルトの名無しさん
03/07/16 02:51
あれもこれも、Haskellの和書が出ないのが悪い。

715:デフォルトの名無しさん
03/07/16 10:48
>>707
すまんが、そういうふうにする以外の方法が自分には想像できない。
doも普通の再帰なので問題はなさそうだが?
>>711
リストモナド≒内包表記
副作用を発生できるモナドはIOモナドだけです。
>>710
ListとMaybeだけだね。
試しに、(a, b) でMonadを作ってみたが…きつい。
---
instance Monad ((,) a) where
(>>=) (sub, main) f = (sub, main') where
(sub', main') = f main
return main = (bottom, main)
bottom = bottom
test = do x <- (("a", 2), 1)
y <- return $ x+1
return $ y*2
---
*Main> test
(("a",2),4)

716:デフォルトの名無しさん
03/07/16 12:02
だれとはなくに
「型構築子」IO はモナドだけど IO a はモナドじゃないよ。
「型構築子」[] はモナドだけど [a] はモナドじゃないよ。


717:デフォルトの名無しさん
03/07/16 12:17
>>713
haskellのリストやアレイはは一部を変更すると全部コピー。
というのは、そのデータ(リスト等)が他の場所で使われるかもしれないから。

一部を変更したということがそのデータを使うプログラムの他の部分にも
わからないといけない。
そのためには、使う部分全部をそのデータの内部状態をあらわすモナドでくるんで
おく必要がある。
# 変更し終わったら、それはモナドの外に出してもいい。

>>715
701の件については、誤読していた。それ以降の式、ってのが何を指すのかわからない。

それはともかくとして、
(IO/状態)モナド内の計算の実行は、手続き型と同様にできるとおもうけど。

>  副作用を発生できるモナドはIOモナドだけです。

haskellプログラムがわからみればIOも他のモナドもかわらない。
プログラマから見たときも結局は同じこと。謎の内部状態をもつ
モナドを受渡しながら処理を順次実行するわけだから。
内部で定義されたモナドでもそのモナドの性質をみとおさなければ、
副作用と同様でしょう。

718:デフォルトの名無しさん
03/07/16 12:30
別のいいかたをすれば、711が書いているように、普通一部を変更すると
副作用が出るわけで、関数型言語では一般にはそれができない。

だが、その副作用/状態を追跡するモナド(STArray,IOArray等)を引数と
して渡し続けながらの順次計算であれば一部変更もできるわけだ。

719:デフォルトの名無しさん
03/07/16 12:45
だれとはなくに
「データ構築子」はファーストクラスだけど
「型構築子」はファーストクラスじゃないよ。


720:デフォルトの名無しさん
03/07/16 13:13
だれとはなくに
モナドは「型構築子」の性質であって、データの性質じゃないよ。

721:デフォルトの名無しさん
03/07/16 15:29
>>717
まず、すまんかった。
確かに中身を見なければ副作用を起こすことは可能だ。そちらの言う通り。

以降の式だが、自分は a >>= (\x -> b) の式に出てくるλのことだと思っている。
そして、715のそういうふうにとは、どでかい合成関数を作ってからそれを実行するということ。
もちろん、遅延実行されるので、少し作ってはそれを実行してというふうになると思っているが。

>(IO/状態)モナド内の計算の実行は、手続き型と同様にできるとおもうけど。
main = sequence_ $ reverse $ [putStr "\n", putStr "a", putStr "b"]
こう言うのはどうする…?
…特殊すぎるか。他は最適化されててもおかしくないやね。
>>718
少なくともIOArrayはIOモナドの一部であってモナドそのものではないと思うが。
>>719
しかし少なくともカリー化はされている。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5330日前に更新/199 KB
担当:undef