[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/09 17:08 / Filesize : 172 KB / Number-of Response : 681
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型言語Part IV



1 名前:デフォルトの名無しさん [04/05/04 14:53]
Lisp Scheme ML Haskell FP Mirranda など
関数型言語について話し合いましょう


関連スレ

関数型プログラミング言語ML
pc3.2ch.net/test/read.cgi/tech/1012445015/

関数型プログラミング言語Haskell
pc3.2ch.net/test/read.cgi/tech/1013846140/

LISP Scheme Part6
pc3.2ch.net/test/read.cgi/tech/1031560687/

Emacs Lisp
pc3.2ch.net/test/read.cgi/tech/1004551074/



612 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:12:28 ]
つかSPJ本の古い方って、PSファイルで公開されてなかったっけ?

613 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:15:17 ]
>>612
うーんと、
research.microsoft.com/%7Esimonpj/Papers/slpj-book-1987/index.htm
のことでしょうか?

614 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:18:57 ]
>>607
604ではないが、どの辺が「もったいぶってる」のかも、何を不快に思うのかもまったくわからん。
メンタルクリニックでも行ったほうがいいんじゃないか?

615 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:21:23 ]
>>614
604ですけど俺は無視したですよ。
あの手のは反応を楽しむから、放っておいたほうがいいと思うので。
スレ趣旨と関係ないから消えますね。

616 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:21:29 ]
>>613
ですね。

617 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:23:03 ]
そもそも回答に対して煽り口調で詰め寄る人間が居るから
荒れるのだと思う。
丁寧に質問し、煽らない。これが重要。

618 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:23:37 ]
>>616
さんくすこ。
この本は関数型言語の実装や動作の理解にはいいけど
もともとの質問(>>596さん)ような目的にはどうなんだろ。


619 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:24:13 ]
語尾にwを付ける人間の発言はスルーすべき。

620 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:26:48 ]
>>618
どうでしょうね。
最近それっぽい人間がboostの使い方やら
ドラゴンブックの読み方を質問しまくってる状況だから
目的に向いてるか向いてないか、当人も判断できないんじゃないかと
思っていますが。



621 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:32:24 ]
>>608
表紙が銀色とかのレクチャーノートシリーズね。・・・つかあの中から何を探せと言うんだ

622 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 10:21:04 ]
あれは元々心当たりやポインタのないような人間が探すものなのか……?

623 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 23:03:44 ]
F# ってまだ生きてるの?

624 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 00:27:37 ]
仮想化とは対象物を不完全ながらもその性質や姿を模倣し現出させることだ。
対して抽象化は、対象物のある特徴的な側面を抽出し概念化することだ。
仮想化で抽象化の技術が使われることはあるだろうが、その逆は考え難い。
コンピュータを使い、扇風機やコタツを抽象化することはできても、仮想化する
ことはできないのだ。少なくとも今の技術では無理だ。コンピュータがその姿形
を変えることはできないのだから。コンピュータが仮想化できるものは、コンピュー
タそのものが直接扱うものだけだ。例えば、仮想メモリ、仮想ネットワーク、仮想
マシン、仮想キーボードといったものだ。

抽象化した結果表現されるものは、設計者が想定した概念やイメージだ。しかし、
実在するものそのものではなく、人が考えたものであるために、このイメージは
非常に脆く、不安定だ。外部からの影響をもろに受け、形を変え易い。個々人が
持つイメージの些細な相違から認識のずれが生じ易い。扇風機の使い方は人に
よって異なることはないが、人がイメージしたものは、その生成から、破棄に至る
まで、非常に不安定な状態になり易い。それを防ぐには、イメージそのものをなる
べく強固なものにし、インターフェースに一貫性と整合性をもたせ、外因による影響
を受けに難くく、壊れ難くするための技術を見につけ、理解を深めておくしかない。

625 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:13:14 ]
ttp://www.cbook24.com/bm_detail.asp?sku=9784839923112
既出?

626 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:16:09 ]
今日M$の人にF#はどうしたのか2時間ぐらいしつこく聞いたら
話してくれなくなった...酷いよ

627 名前:デフォルトの名無しさん [2007/05/01(火) 23:45:48 ]
F#最近新バージョン出たばかりじゃないか。どこを見てるんだ

628 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 00:15:13 ]
>>626
あれ?今日なんかイベントあったっけ?
それとも仕事で趣味の話?

629 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 03:55:15 ]
>>626
F# 1.9が出て、Active Patterns(バナーナ構文)とか面白いものが出てきてるぞ。
少しは本家サイト見てみれ。

630 名前:デフォルトの名無しさん [2007/05/06(日) 11:48:08 ]
おい!気づいたんだが、Excelって関数型言語じゃね?



631 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:21:34 ]
>>630
"Spredsheet functional programming" の話?
ずいぶん前にも似たような話があった気がするけど

632 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:16:24 ]
Comegaが自然消滅したのを見ればF#が公式にVS一門に加わるまでは手なんか出せるはずが無い

633 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:30:08 ]
>>630
あれは関数型言語ではなく、エンドユーザコンピューティングだ。

634 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:35:07 ]
関数性とエンドユーザ性は直交しないの?

635 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:55:07 ]
関数の無い言語って見たことないんだが

636 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 21:13:40 ]
機械語やBrainfuckやPrologには関数がないんじゃない?

637 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 22:05:40 ]
結構いっぱいあるよ

638 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 22:09:43 ]
N88-BASIC とか

639 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 01:18:34 ]
Fortressって関数型言語?

640 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 01:51:20 ]
Prolog には関数あるよ。組み込みだけど。



641 名前:デフォルトの名無しさん [2007/06/28(木) 06:49:48 ]
まだあったのかこのスレ

642 名前:デフォルトの名無しさん [2007/07/01(日) 15:20:52 ]
関数型言語、あまりに動きがないな。
新しいことやってくれよ。

643 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 06:00:25 ]
広まる前に枯れたから難しいな

644 名前:デフォルトの名無しさん [2007/08/29(水) 18:43:31 ]
私は普段 Python を使っています。
関数型プログラミングにおける reduce が分かりません。
"広い意味において"どのように理解しておけばよいのでしょうか?

説明のためにちょっと定義:
 A(f,[0,1,2,3,4]) => f(0,f(1,f(2,f(3,4))))
 B(f,[0,1,2,3,4]) => f(4,f(3,f(2,f(1,0))))
 C(f,[0,1,2,3,4]) => f(f(f(f(0,1),2),3),4)
 D(f,[0,1,2,3,4]) => f(f(f(f(4,3),2),1),0)

(1). 正直 reduce だけではどれなのか分からない。(また fold も曖昧である)。
(2). fold は reduce と同義。
(3). 普通は (reduce_r == fold_r == A) , (reduce_l == fold_l == C) で通じている。
(4). f(x,y)==f'(y,x) なら A(f)==D(f') になるので、結局のところ A,D を区別しない。(同様にB,Cも区別しない)。
(5). A,D と B,C は実装の問題だと考えている。


645 名前:デフォルトの名無しさん [2007/10/03(水) 23:13:32 ]
foldとreduceは違うんじゃないの?
fold:リスト要素の型との戻り値の型はちがっても良い
reduce:同じ
じゃない?

646 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 08:47:15 ]
俺もほぼ同義でいいと思うが、あえて分ければそうかもしれんね。
別の表現をすれば、最初の項を別途与える=fold、リストからとる=reduce ?

647 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 16:20:56 ]
どうもありがとうございます。
ニュアンスに微妙な違いがあるんですね。


648 名前:デフォルトの名無しさん [2007/10/09(火) 23:01:13 ]
>>642
あたらしいことwww
ttp://www.blue.sky.or.jp/grass/

649 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 00:01:42 ]
スゲエ、笑けるw

650 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 02:07:38 ]
>>648
なんぞこれwwwww



651 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 14:19:10 ]
ドキュメントが英語なのが最大の笑い所な気がするw

652 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 15:48:39 ]
>>648
これはワラタ。
けど、手で書きにくすぎる上に機械生成が簡単過ぎるので、
変態言語としては微妙な気がする。

あと、公式の「はいはいわろすわろす」を逆アセしてみたら、
サイズを節約するためのトリックが使ってあって面白かった。
ttp://up.uppple.com/src/up7032.txt

653 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 01:50:17 ]
scalaってどうよ?

654 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 19:12:40 ]
Genericsの互換性がないのが痛すぎる>Scala
F#のほうがよさげ。

655 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 14:31:47 ]
JavaのGenericsと互換性がないってこと?
それはちょっとキツいかも。
思えば generic な HashMap も java.util のそれではなく scala.collection.mutable.HashMap だったり…

しかし今Scala触ってて Option型と for記法に感動したんだが。

val o2 = new HashMap[int,int]();
o2(1) = 2
for(i<-o2.get(1)) {println(i)}
for(j<-o2.get(2)) {println(j)}

まんまMaybeモナドやん! Scala最強

656 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 14:35:25 ]
書き忘れた。 Scala かじらないと何のことかわからんな。

o2(1) = 2
for(i<-o2.get(1)) {println(i)} // 2が出力される
for(j<-o2.get(2)) {println(j)} // 何も出力されない (エラーにならない)

for(i<-o2.get(1); j<-o2.get(2)) {...} // j の束縛に失敗するので何も出力されない (エラーにならない)

まじで Scala の範囲内なら NullPointerException 撲滅できそう。
既存のコード書き直すと Option型だらけになる場合もありそうだけど。

それだけに、 asInstanceOf の戻り型をなぜ Option 型にしなかったのか理解に苦しむ…



657 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 23:11:06 ]
Scala わかんないけど、それ単に key = 2 のリストを返してるだけちゃうん?

658 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 21:16:55 ]
ハッシュの戻り値が Option に包まれているのが良いんです。
Javaだと null かもしれない Integer 型を扱う必要があるけど、
Scala なら Option[int] みたいな感じで、 無効な値を含む場合を陽に切り分けることができるっす。

これだけだと、無効な値を含むかどうかをチェックしなきゃだめでめんどくさいんですが、
Haskell でいう Maybe モナドみたいな書き方がサポートされているので、if文が必要なくなり楽ができます。

しかも JVMで動く型付きの関数型言語。ちょっと良さげだと思うです。
>>654 みたいな欠点はあるけど。

659 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 13:06:09 ]
そのうちoption型は、どの言語も持つようになって、
それ前提にライブラリ構成されるようになるかもね。
C++もboost::optionってのがある。

660 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 07:18:16 ]
つまりfailure-oblivious computingってやつ?



661 名前:デフォルトの名無しさん [2008/03/16(日) 17:25:51 ]
組み込み用にクロス開発できる関数型言語処理系ってありますか?

具体的に言うと、ARMやMIPS-RのGCCでスタティックリンクできるものがあれば
紹介して頂けないでしょうか。

662 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 20:58:12 ]
optionalって.NETでいうとNullableみたいなもの?

663 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 03:39:13 ]
nullでもnilでもなく、Noneですがそうです。

関数型言語的に言うと、domianがliftingされてるわけです。


664 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 10:54:19 ]
どみあん

665 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 12:25:53 ]
何度も出た話題かもで恐縮だけど、関数型言語の位置付けってこれからどうなっていくの?
手続き型より巨大になっていくか、融合していくか、今のままなのか。

666 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 13:37:07 ]
未来のことなんてわかんねーyp

667 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 01:18:44 ]
関数型言語が本流になることはないでしょうが、
プログラムに参照の透明性があるのは手続き型言語でも好ましいことなので、
関数型言語で産み出された種々の機構が
手続き型言語に結び付けられるのではないでしょうか。

668 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 04:15:20 ]
50年間そうだったのだからそうだろう。

669 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 07:26:36 ]
実際そんな感じだよな。

670 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:39:27 ]
手続き型言語では簡単にできることが、
純粋関数型言語では困難なことがある。
その困難に立ち向かって獲得した手法は、
他の言語でも極めて有益なことがある。

不自由さの中で獲得した手法がきわめて豊穣である、
これは数学基礎論で起っていることと同じである。



671 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:51:01 ]
関数型言語はきっと本流になるよ
主流の言語は確実にこっちに向かってる
少なくとも、そう信じないとやってられない

672 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:52:43 ]
関数型言語は前と同じところに立っているのにな。

673 名前:デフォルトの名無しさん [2008/04/06(日) 10:16:39 ]
関数型って逐次処理は一切ないの?
それとも数学的に(ラムダ計算で?)合成可能な関数オブジェクトを持った
普通のプログラミング言語になるの?(つまりc#とか既に近い所にあるのか)

674 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:29:14 ]
言語に逐次処理が組み込まれているかどうかは別として、
逐次処理が「表現できない」言語は実用にならないから、
普通の関数型言語はどれも逐次処理を表現できるようになってる

どうやって表現するかは言語ごとに違って、組み込みで持ってるの(Scheme,ML)とか、
データに関数を適用して、その結果に関数を適用して…という構造で逐次処理を表すの(Clean)とか、
処理自体を第一級のデータとして扱うの(Haskell)とか

675 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:34:35 ]
関数型でも、Lispとかで逐次処理をだらだら書いてるソースを見かけると、
手続き型とあんま変わんなくね?と思うことがある。
一方で、非関数型でも、定義を並べる感じできれいに書かれてるものもある。
言語も重要だが、書き手の心構えのほうが影響でかい気がする。

676 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:41:26 ]
レスどうも。ポインタありがとう。
やっぱ書き方というか設計によるところもあるんですね。

677 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:42:02 ]
関数型言語はあくまで関数プログラミングを支援する言語だからな
Haskellで命令的に書くことも不可能じゃない

678 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 11:42:58 ]
>>674
基本的には関数の評価が強制されることを利用して順序をつけるので同じじゃないかな

679 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 12:02:37 ]
>>678
例えばSchemeの((lambda () a b c))でa b cが順に評価されるのを
「関数の評価が強制されることを利用」と表現するのは無理がないか?
Haskellの動作に至っては関数と全く(特定の処理系の内部実装の話を別にすれば)関係ない

680 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:32:03 ]
論理型言語の現状はどうなってるの?








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<172KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef