関数型言語Part IVat TECH
関数型言語Part IV - 暇つぶし2ch262:デフォルトの名無しさん
04/12/17 04:51:08
【計算機プログラムの構造と解釈】 P212

  オブジェクトモデルは、世界をばらばらな部品に分割することで、それを近似する。
  関数型モデルはオブジェクト境界に沿っての部品化はしない。オブジェクトモデルは
  「オブジェクト」の非共有の状態が、共有の状態よりずっと大きい場合に有用である。
  オブジェクトの視点が失敗する場所の例は、量子力学で、そこでは物を個々の粒子と
  考えると矛盾と混乱に陥る。オブジェクトの視点と関数的視点の統合は、プログラ
  ミングより基本的認識論に見るべきものがある。

この「基本的認識論」と呼ばれるものについて知りたいのですが、何か参考になる
文献など、ご存知でしたら教えてください。

263:デフォルトの名無しさん
04/12/17 05:27:38
>>262
認識論の基本ということであれば、観念論的立場だが、ヘーゲルを
読むのがいいと思う。ただし「精神現象学」から入るのは止めた方が無難。

264:Aransk
04/12/17 12:49:16
>>262
「ケインズの哲学」伊藤邦武著 岩波書店
お奨めです。いきなりヘーゲルはきついと思われます。
ご承知の通り、ケインズは本来経済学者です。
従って本書中にある確率論はとっつき易い。
すくなくともヘーゲルより
「オブジェクトの視点と関数的視点の統合は、プログラ
  ミングより基本的認識論に見るべきものがある。」
的な視点と近いものがあります。



265:Aransk
04/12/17 13:18:56
>>261
URLリンク(www.shiro.dreamhost.com)
簡潔さは力なり---Succinctness is Power---
Paul Graham, May 2002.
Quote:
Arcで階乗を高階関数で次のように書きたくなければ:
(rec zero 1 * 1-)
つぎのような再帰的な表記を使っても良い:
(rfn fact (x) (if (zero x) 1 (* x (fact (1- x)))))
私は例をすぐに思い付けないけれど、言語が簡潔すぎることが
可能かどうかという問いには興味がある。ごちゃごちゃ固まって
理解不能なようにしかコードを書けないような言語なんて
あるだろうか。誰か例を思い付いたら、是非見てみたい。
Unquote:
URLリンク(sonic64.hp.infoseek.co.jp)
Perl one liner 集 perl 1行野郎
Quote:
ファイルを文字単位ですべてひっくり返します
perl -0777e 'print scalar reverse <>' f1 f2 f3 ...
Unquote:
(rec zero 1 * 1-)

perl -0777e 'print scalar reverse <>' f1 f2 f3 ...

簡潔性において上が勝るが可読性では下が勝る。
また上の例など返って間違う可能性が高い。
「さこそ」とぞおおせいでたまいけり。
誰が言っているのか、何を言いたいのか
つぶやいてみたかっただけなのか、
さっぱり分からん、状況に極めて
類似してないだろうか?


266:デフォルトの名無しさん
04/12/17 18:48:41
よろづに時といふは必らず見るべきものなり -- 樋口一葉

267:デフォルトの名無しさん
04/12/17 21:09:38
>>263
哲学や物理学のようなものではなくて、認知科学や実験心理学のような
ところの研究成果で、素人にも分かりやすく整理されている何かおもしろい
ものはないかな、と勝手に期待してました。
ヘーゲルは大昔に「論理学」を読んだことがありますが、難しくてさっぱり
分りませんでした。
>>264
>的な視点と近いものがあります。
どう近いんでしょうか?私の知りたいのはアクロバットな認識というよりも、
全ての人が理解しうるようなもっとプリミティブなものです。

というわけで、この話題スレ違いだし電波臭いので終わり、です。

268:Aransk
04/12/26 17:12:25
ドイツ観念論ばりばりのヘーゲルよりは
イギリス経験論の流れをくむラッセルーケインズ
なんかの方がプログラミングには近いと思うのです。
また、ケインズは本職が経済学ですから
哲学の専門家よりは用語は分かりやすく
基本的なところから入っています。
さらにご承知のとおりケインズは
イギリスの大蔵省に長く勤めた実務家です
から、論理に浮いたところが少ない。
そのケインズの哲学を日本人が解説して
いるいわば新書版感覚で読める本と考えて
推薦しただけで他意はありません。
オブジェクト指向も関数指向も命題の
切り取り方にある訳です。従って
ケインズの説くA->B命題に帰納される
際の蓋然性の束という概念があるいは
「オブジェクトの視点と関数的視点の統合」
という観点になんらかの寄与をするかも
しれないなと考えている次第です。




269:デフォルトの名無しさん
05/01/08 12:57:55
Aranskの文章の起承転結をおしえてください

270:デフォルトの名無しさん
05/01/08 18:34:06
妄想に始まり承、転はなくて妄想に終わる。


271:デフォルトの名無しさん
05/01/09 18:56:33
全体で見ると恒等写像ですか?

272:Aransk
05/01/16 15:23:47
>全体で見ると恒等写像ですか?
流動的で不確実な世界を
モデル化するための視点と
方法における蓋然性の束と
考えて下さい。写像そのものに
既に蓋然性と選択性が入りこんで
いるような。

273:デフォルトの名無しさん
05/01/16 18:14:03
脳の腐りかけた文章発見!!

274:デフォルトの名無しさん
05/01/17 02:54:01
名前をよく見ろ。腐りかけてるんじゃなくて腐ってるんだ。

275:デフォルトの名無しさん
05/01/17 05:12:09
>蓋然性の束

これはどういう意味ですか?興味あるので詳しく教えてください。
イジワルではありません。

276:Aransk
05/01/17 17:28:17
>>275
申し訳ないが「蓋然性の束」を概念を一から
説明するとなると結構大変なんです。
そこでまず以前にご紹介した「ケインズの哲学」の
該当部分をお読み頂くか、宮台先生のBlogにおける
社会学入門の7回以降辺りを読んで頂けないでしょうか?
URLリンク(www.miyadai.com)
凡その概念を把握されてから、それをプログラミング
パラダイムにどう応用するのか一緒に考えて
みようじゃありませんか?

277:Aransk
05/01/18 18:32:30
>>275
ここである程度「蓋然性の束」の概念を
ご理解頂ければ:
URLリンク(www.nanoelectronics.jp)
「量子力学から確実に分かる唯一の情報は、確率だけということになる。」
このプログラミングパラダイムへの道が開けるのでは
ないでしょうか?
申し訳ありませんが、これ以上は企業秘密と言う事で
ご勘弁下さい。




278:デフォルトの名無しさん
05/01/19 00:07:36
Arnaskに新書いじょうのものは理解できない
ということはよくわかった。

279:Aransk
05/01/20 13:52:53
新書以下にも付き合うのが「しんどい」ってことも
分かってくれた?

280:デフォルトの名無しさん
05/01/20 18:38:23
隔離スレが機能してない。
嫌がらせか?

281:デフォルトの名無しさん
05/01/21 03:39:07
このスレッドは天才研究者「Aransk」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                         霊長類研究所

282:デフォルトの名無しさん
05/01/21 03:44:59
>>281
矛盾。

283:デフォルトの名無しさん
05/01/22 01:35:36
>>279
自分の文章を読むのもしんどそうですね

284:デフォルトの名無しさん
05/01/23 00:50:54
せっかく本人が削除しやすい名前付けてくれてるんだから
専用ブラウザで見ようぜ。

285:デフォルトの名無しさん
05/01/23 05:43:47
キチガイはスルーが一番キツイらしいからね

286:デフォルトの名無しさん
05/02/01 17:16:45
MSのF#もだいぶすっきりしてきた様に思いますが…
UNICODEやDLも使えるそうな、
案外MLの本命になるかもね?
URLリンク(research.microsoft.com)
1.0リリース直前!MLはF#、ScriptはGroovyで決まりか?(笑)

287:デフォルトの名無しさん
05/02/01 17:18:48
なんでそこでGroovy?
意味わかんねえ

288:デフォルトの名無しさん
05/02/01 21:59:58
>>286 書き方が Arnask っぽい
本人ですか?

289:デフォルトの名無しさん
05/02/01 22:25:26
>>288
アルナスク?だれですか

290:デフォルトの名無しさん
05/02/02 00:24:55
シャア=アナルスキ

291:Aransk
05/02/02 15:08:44
>>288
なんで分かるの?正しくは「Aransk」だかんね。
>>287
>なんでそこでGroovy?意味わかんねえ
寄らば大樹の陰です。世の中の常識では?(笑)

292:デフォルトの名無しさん
05/02/02 15:26:08
アナルスキー関連はこちらへ
超準関数型言語Aransk
スレリンク(tech板)

293:Aransk
05/02/03 15:26:38
ワカリマセンよ。
気付いたら関数型言語はF#しか残ってないかも?


294:デフォルトの名無しさん
05/02/03 15:29:36
アナル好き?がいしゅつ(←なぜか変換できない)

295: ◆AnalSexRiQ
05/02/03 16:15:33
Anarsk関連はこちらへ。以後スルーよろしく
超準関数型言語Aransk
スレリンク(tech板)

296:デフォルトの名無しさん
05/02/03 23:38:37
ScriptはRuby!きまってんだろ!?
ああ?

297:デフォルトの名無しさん
05/04/10 15:39:32
LLLLLLLLLLLLLLLLLLLLLLLLLLL
      A  .  I   .
LLLLLLLLLLLLLLLLLLLLLLLLLLL

298:デフォルトの名無しさん
05/04/21 04:36:46
>>264
そりゃケインズの確率論(フェロー応募論文のやつだよね)はほとんど哲学だからな。
数学とはいえないだろう。そういう意味では難解ともいえるな。

299:デフォルトの名無しさん
05/04/29 08:40:25
fortran, C, C++, JAVA, Perl, Python で科学計算の経験はあるのですが、
趣味で関数型言語を勉強してみたいと思っています。ML系、Haskellの
どちらかから始めて、次にLispに進もうと思っていますが、前2者のどちら
がお薦めでしょうか?

300:デフォルトの名無しさん
05/04/29 10:03:11
どっちでも可。
ただ、言語として綺麗なのは Haskell。また、 ML は「純粋な」関数型言語で
はないので、 Haskell の方を勧める。

つか、挙げてる中では Lisp 系が一番楽だと思う。本もいっぱい出てるし。


301:デフォルトの名無しさん
05/04/29 12:03:48
>>299
HaskellよりMLの方が馴染みやすいと思うよ。
MLよりもLispの方が馴染みやすいと思うよ。
でも、何の為にそれらの言語を覚えるの?
確かに、違う言語のパラダイムを見ることはプログラミングテクニックの向上にはなるけれど。

302:299
05/05/01 23:43:20
きっかけは Maxima という数式処理プログラムが lisp で書かれているのを
知ったからです。ただ、lispは括弧が多いし何となく古くさい感じがするので
どうせなら新しい言語をと思ったのです。

303:デフォルトの名無しさん
05/05/02 03:56:28
言語を覚えるのなんてその先の道程にくらべればたいした手間じゃないんだから
興味のある対象で使われてるものから手をつければいいのに。


304:デフォルトの名無しさん
05/05/03 07:02:37
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので

305:デフォルトの名無しさん
05/05/03 07:53:47
>>302
古臭いと言われちゃうとなあ……ええ、古いし括弧だらけですよ?
さておき、まずこちら辺りを眺めてみては。

独習 Scheme 三週間
URLリンク(www.sampou.org)
やさしい Haskell 入門
URLリンク(www.sampou.org)

まあ、他の方が言っているように Lisp 系が一番入り易くはあるでしょう。
善かれ悪しかれ何でもありなので、どんなスタイルでもとりあえず書けるから。
Lisp 系で手続き型っぽい書き方から関数型っぽい書き方に
頭を馴らしていくのが障壁は低めじゃないかなーと。

306:デフォルトの名無しさん
05/05/04 18:45:21
>>302
Lispを侮ってはいけない。
確かに関数型言語の思想からはみ出している部分はあるが、
それでも関数型言語の原型であり到達点であることには疑いがない。

若干宗教的偏執はあるが、
URLリンク(www.shiro.dreamhost.com)
が面白い。下記は引用。

>Java、Perl、Pythonと順に見て来ると、おもしろいパターンに気づくだろう。
>少なくともあなたがLispハッカーであればきっと気づくはずだ。
>各言語は次第にLispに近付いてきている。
>PythonはLispハッカーの多くが間違いだと思っている機能さえコピーしている。
>簡単なLispプログラムなら、ほぼ一行毎にPythonに変換することすら可能だろう。
>2002年の今になって、プログラミング言語はようやく1958年に追い付こうとしている。

307:デフォルトの名無しさん
05/05/04 21:10:07
関数型言語の勉強を始めたら、Cを書くのが遅くなった。
意味もなく考えすぎてしまうようになった。これはいいことなのか
悪いことなのか・・・

308:デフォルトの名無しさん
05/05/08 13:54:06
ポピュラーサイエンスに「プログラマは頭使わね。」
みたいなこと書いてあったからいいんじゃね。


309:デフォルトの名無しさん
05/05/24 11:25:14
遅延評価を実装してる言語って、Haskell, Clean, 他に Python もそうなの?
どーせ勉強すんなら普段とは違った性質がある言語がイイと思って。

310:デフォルトの名無しさん
05/05/24 18:02:46
>>309
Pythonは違う

311:デフォルトの名無しさん
05/05/24 20:00:30
遅延評価なんてちょこっと処理系のコード弄ればできちゃうのに。

312:デフォルトの名無しさん
05/05/24 20:56:16
>>311
……………まあ、いいや。

313:デフォルトの名無しさん
05/05/25 01:19:04
>>310
> Pythonはリストの内包表記といくつかの遅延評価メカニズムを備えているから
URLリンク(www.shiro.dreamhost.com)

314:デフォルトの名無しさん
05/05/25 01:34:15
とはいっても square(2+3) が (2+3) * (2+3) に
なるわけではないし


315:デフォルトの名無しさん
05/05/25 02:05:56
>>313
根拠を挙げるならPythonの遅延評価に関る機能を挙げなさいよ。
「備えている」てだけの発言を引いたって意味ないよ。


316:309 = 313
05/05/25 03:41:06
Python 使った事ないでつ。
「遅延評価メカニズムを備えている」って書いてあったから、そーなのかなと思ったでつ。
不勉強で申し訳ないでつ。

317:デフォルトの名無しさん
05/05/25 07:33:05
最近 C が関数型言語なんじゃないかって気がしてきた

318:デフォルトの名無しさん
05/05/25 15:26:48
そうかもね。でも高階関数の型の構文は変だよ。例えば
  f : (int -> float -> short -> char) * int -> float -> short -> char
みたいな型は
  char (* (* f (char (* (* (*) (int)) (float)) (short), int)) (float)) (short);
みたいに書かなければならないし。

319:デフォルトの名無しさん
05/05/25 15:31:59
変つうよりも見にくいつうならまぁ同意。

320:デフォルトの名無しさん
05/05/25 21:33:48
> f : (int -> float -> short -> char) * int -> float -> short -> char

これを日本語で読み下してもらえませんでしょうか


321:デフォルトの名無しさん
05/05/25 21:44:58
A型とint型のペアからB型への関数型.

ここで
A型は,int型からB型への関数型,
B型は,float型からC型への関数型,
C型は,short型からchar型への関数型.


322:デフォルトの名無しさん
05/05/25 22:16:00
あんがとう

f : ((int -> (float -> (short -> char))) * int) -> (float -> (short -> char))

括弧で順位を付けるとこうなるのね


323:デフォルトの名無しさん
05/05/25 23:03:58
* って デカルト積 ?

324:デフォルトの名無しさん
05/05/26 03:28:02
関数型アセンブラ言語ってないの?

325:デフォルトの名無しさん
05/05/26 06:08:09
>>324
関数型CPUがないから、

326:デフォルトの名無しさん
05/05/26 08:44:35
ある意味Lisp machine上のLispとか?

327:デフォルトの名無しさん
05/05/26 08:55:54
OcamlのZINC VM
 URLリンク(pauillac.inria.fr)


328:デフォルトの名無しさん
05/05/26 17:43:54
確かにLISPマシンはアセンブリと言えるカモナ。

329:デフォルトの名無しさん
05/05/26 18:25:55
cleanのabcマシーンとか。他にもいくつか抽象機械はあったはず。良くしらんけど。

330:デフォルトの名無しさん
05/05/26 18:56:04
抽象機械とVMは違う概念でしょうか

331:デフォルトの名無しさん
05/05/26 21:26:49
>>330
>>330
>>330
>>330
>>330
>>330
>>330
>>330
>>330
>>330

332:デフォルトの名無しさん
05/05/26 21:28:58
>>330
同じと思ってよい

333:デフォルトの名無しさん
05/05/26 21:35:04
>>332 ?

334:デフォルトの名無しさん
05/05/26 21:36:22
英単語の略称とその和訳を知ったかぶるスレはここですか?

335:デフォルトの名無しさん
05/05/26 21:36:56
>>331を見て「ループに書き直さなきゃな」とか思う漏れは末期症状?
>>330仮想機械と抽象機械ってどう違うの? 実装と仕様ってこと?

336:334
05/05/26 21:37:23
つか、単なる和訳じゃん。

337:デフォルトの名無しさん
05/05/26 21:40:21
abstract machine 抽象機械: 操作的意味論を定義するためのもの
virtual machine  仮想機械: ソフトウェアで記述された機械語インタープリタ。
                   もし抽象機械があれば、まず抽象機械と対応のとれる実装をする事が多い


338:デフォルトの名無しさん
05/05/26 22:13:46
恥ずかしい>334がいるのはこのスレですか

339:337=334
05/05/26 22:25:34
いみふめ

340:デフォルトの名無しさん
05/05/26 22:26:44
>>338
おにいちゃん・・・はずかしい・・・

341:デフォルトの名無しさん
05/05/26 22:54:03
ごめんね。おにいちゃんSECDとかSKとかGとかBとかCAとかLAとか知らないからごねんね。

342:デフォルトの名無しさん
05/05/26 23:02:47
おにいちゃん、必死過ぎ・・・

343:デフォルトの名無しさん
05/05/27 05:42:11
結局>331は何を言いたかったん?

344:デフォルトの名無しさん
05/06/03 08:24:26
自己準同形と自己同形の違いが分らんですにゃ

345:デフォルトの名無しさん
05/07/29 23:06:11
初代1です
ごめんね

346:デフォルトの名無しさん
05/09/21 05:36:47
OCamlとHaskellのどちらかを勉強しようと思うのですが
どっちがいいでしょうか?

347:デフォルトの名無しさん
05/09/21 06:40:55
OCaml と GHC と MLton(SML) をインスコして試してみたら。
好き嫌いの問題が大きいから、どれがお勧めとかは難しいよ。

348:デフォルトの名無しさん
05/09/21 13:35:42
Pugs書いた天才を見習ってhaskell一ヶ月やってみたら?

349:デフォルトの名無しさん
05/09/21 17:30:11
>>346
まず「関数プログラミング」を買って読む。
URLリンク(www.kindaikagaku.co.jp)

それで理解できたらHaskellに進む。
無理だったらOCamlへ進む。


350:デフォルトの名無しさん
05/09/21 22:33:41
一応、Lispの経験あります。
Haskellの方が先進的ということなので、
Haskellやってみようかと思います。

351:デフォルトの名無しさん
05/09/21 22:42:20
自分が頭がいいつもりになれるしね

352:デフォルトの名無しさん
05/09/24 00:43:28
関数型のメリットって、副作用がないことだけ?

353:デフォルトの名無しさん
05/09/24 00:46:51
副作用が無いと言うより、副作用を使わないよう強制されるじゃないか。
或は副作用を切り分けられるとか。

354:デフォルトの名無しさん
05/09/24 01:18:52
なるほど。
副作用がないことがあらかじめわかってるからこそできることって
なんだろう?

そういう機能をC++とかにいれたりしないんだろうか?

355:デフォルトの名無しさん
05/09/24 01:22:55
>>352
why functional programming matters
URLリンク(www.sampou.org)

356:デフォルトの名無しさん
05/09/24 01:57:58
>>354
C++に例えるならテンプレートのコンパイルタイムプログラミング
今流行じゃないのか?

357:デフォルトの名無しさん
05/09/24 03:35:43
>そういう機能をC++とかにいれたりしないんだろうか?
まだ研究段階だから。そんなこと言うなら○○入れろとかいくらでも言える。


358:デフォルトの名無しさん
05/09/24 11:54:50
>>352
不必要に副作用に頼らなくていいのがひとつの利点だと思う。
たとえばループをまわすときに毎回カウンタ変数を更新するのは直感的でない。
そこで高階関数を使って典型的なループを抽象化する。
この点では副作用が禁止されていることはそれほど重要ではない
(たとえば、副作用を避けて再帰でやっても似た問題がある)ので、
この手法はC++の標準アルゴリズムなんかに取り入れられている。

一方、C++の標準アルゴリズムがそれほど使いやすくない(私見)理由のひとつは、
直感的な「データ構造の値渡し/値返し」が効率上の理由から避けられている事だ。
副作用がなければ、値渡しと参照渡しを区別できないので、
値渡しの直感性を保ったまま参照渡しで実装できる。
さらに、データが変更されないことが保障されていれば、
データ構造の共有もやりやすい。

359:デフォルトの名無しさん
05/09/24 12:23:24
値渡しと参照渡しの差が無くなるのって重要ですね。

関数型は関数に副作用がないことを仮定できる時、
どこまでコードが抽象化できるかを考えてるわけですね。

JavaやC#、C++を使っていますが、
やはり何か足りないと感じてます。
そのヒントが副作用にあるといいのですが。

まだまだプログラミング言語って改良の余地ありますよね。

360:デフォルトの名無しさん
05/09/25 23:32:37
関数型言語で
HTTPdとかWEBクライアントとか作ってる人っているのかな?

361:デフォルトの名無しさん
05/09/25 23:41:16
>>360
web browser
URLリンク(pauillac.inria.fr)

362:デフォルトの名無しさん
05/09/26 00:39:04
System programming using FP
URLリンク(lambda-the-ultimate.org)
そのキャッシュ
URLリンク(www.google.com)


363:デフォルトの名無しさん
05/09/26 06:59:36
>>361
Tkベースで不細工だけど
関数型で書いてる意味あんの?

364:デフォルトの名無しさん
05/09/26 07:07:40
もしかして関数型って実用的じゃないの?

365:デフォルトの名無しさん
05/09/26 07:12:22
>>363
意味をどのレベルで求めるかに依るんじゃないかな。

URLリンク(pauillac.inria.fr)

以前 ML スレで ML で書いた OS の話が出て来た時も、意味が
有るか無いかって話題になったけど、その議論自体あまり意味が
無いんだよね。要は人それぞれ。
俺は作者の中の人じゃないから、存在するって事以外知らんよ。

366:デフォルトの名無しさん
05/09/26 07:14:15
>>364
何でそう思ったのかな。

367:デフォルトの名無しさん
05/09/26 08:04:12
URLリンク(cleangl.sourceforge.net)
ゲームぐらいは作れるよ。

368:デフォルトの名無しさん
05/09/26 12:00:49
ゲームなんかどの言語でも作れるけど?

369:デフォルトの名無しさん
05/09/26 12:10:40
言語処理系作るなら関数型がいいよ
なんせhaskell覚えたて厨がPugs1ヶ月で作ってるし

370:デフォルトの名無しさん
05/09/26 18:01:28
>>368
whiteで3D格闘ゲームよろ

371:デフォルトの名無しさん
05/09/26 20:46:40
>>360
MLでWebサーバ作成
URLリンク(pllab.jaist.ac.jp:8080)

372:デフォルトの名無しさん
05/09/26 21:55:34
C,C++の代わりになる関数型言語の処理系はないってことですね

373:デフォルトの名無しさん
05/09/26 22:12:03
はいはい何も出来ませんよ

374:デフォルトの名無しさん
05/09/26 22:21:24
はいはい(馬鹿には)何も出来ませんよ

375:デフォルトの名無しさん
05/09/26 22:36:58
わざわざ馬鹿と断る意味ありませんよ

376:デフォルトの名無しさん
05/09/27 00:39:43
関数型言語の代わりになるC,C++もねーだろ

377:デフォルトの名無しさん
05/09/27 09:04:21
おらいら、「関数型言語で書いた」と言いたいだけだろ?
TPOをわきまえろ。

378:デフォルトの名無しさん
05/09/27 15:32:10
なぜ関数言語は実用的じゃないのか?

379:デフォルトの名無しさん
05/09/27 16:04:58
え、実用的じゃないなんて意見は初めて聞いたが・・・
>>378はなんでそう思ったんだ?


380:デフォルトの名無しさん
05/09/27 17:39:28
世のアプリは関数型で作られてない。

381:デフォルトの名無しさん
05/09/27 18:49:27
Aransk?

382:デフォルトの名無しさん
05/09/27 18:59:16
まあ、実際使われてないのは
実用的じゃないからなんだが

383:デフォルトの名無しさん
05/09/27 19:21:17
ある程度以上の頭を持っていれば非常に実用的。
そうでないと非実用的。

384:デフォルトの名無しさん
05/09/27 21:14:25 0
なこたぁない。
C言語をリプレイスするだけのメリットがないだけだろ。

385:デフォルトの名無しさん
05/09/27 22:35:49 0
「CかC++の置き換え = 主流・メジャー・優秀」か。

>>384
お前Win板とかで「Jane最強!!」とか「Opera糞!!」とかいってるタイプ?

386:デフォルトの名無しさん
05/09/27 23:24:29
現実から目をそらすな

関数型は使われない、これ事実。
でも俺らは研究する、飯のために。

387:デフォルトの名無しさん
05/09/27 23:35:50
だからさ、別に「他の人々があまり使わない」のはどうでもいいのよ。
僅かな人間だけが使いこなせるこの現状のほうが、俺には都合がいいし。

388:デフォルトの名無しさん
05/09/27 23:46:34
最近C#やC++とかメジャー言語でも関数型機能が取り込まれてるよな
関数型の知名度が上がるのはこれから




389:デフォルトの名無しさん
05/09/28 00:03:19
と 10 年前も言われてたが Java が出た。

390:デフォルトの名無しさん
05/09/28 00:06:34
>最近C#やC++とかメジャー言語でも関数型機能が取り込まれてるよな
もう関数型にこだわってる実用性の低い言語に価値はないね。

391:デフォルトの名無しさん
05/09/28 00:09:33
>>387
ヒント:統計

392:デフォルトの名無しさん
05/09/28 01:28:20
【研究】「実社会にも応用可」 "ジョルダンの曲線定理"、世界初の完全証明…信州大教授ら
スレリンク(newsplus板)l50

この証明の検証に使用された定理証明システムはMLで書かれたプログラムです。

393:デフォルトの名無しさん
05/09/28 07:57:21
MLはCで書かれたプログラムです。

394:デフォルトの名無しさん
05/09/28 08:51:57
何の事だ?

395:デフォルトの名無しさん
05/09/28 10:06:03
マシン語最強ってことだろ

396:デフォルトの名無しさん
05/09/28 11:27:17
最強論議は小学生まで。

397:デフォルトの名無しさん
05/09/28 18:01:43
関数型言語って使われてるの?

使われてないよ派
├OSが関数型じゃないから派
│├そもそもCPUが手続き的派
│└だからMLでOS作ろうぜ派(古典的行動派(絶滅の危機))
│ └やっぱLISPマシンだよ派(懐古派、第6世代派)
├関数型は遅い派
├関数型は人間の思考と合わないよ派(右派過激派)
│└それは最初に手続き型でプログラミングを習うからだ派
│ └最初にSchemeで教育しよう派(MIT信奉過激派)
│  └最初の教育はLOGOだろ派、Smalltalkだろ派(スレ違い派)
│   └LOGOは関数型言語だよ派(スレ違い修正派)
├機械語最強派(小学生派)
├おまいらは使わなくていいよ派(過激アカデミック派)
└火星人の陰謀だよ派(電波派)

使われているよ派
├定理証明とか言語処理とかはやっぱ関数型だよね派(穏健アカデミック派)
│└HaskellでRubyインタプリタ書きました派(行動派)
├Webサーバーとか実用アプリも書けるよ派
│└Haskellでグラディウス書きました派(行動派)
├C++とかPnutsとかC#とかで関数型は生き続けるよ派(中道派)
│└C++もJavaScriptもRubyも関数型言語だよ派(左派過激派、関数オブジェクトがあればみんな関数型だよ派)
└うちのシェルはeshだよ派


398:デフォルトの名無しさん
05/09/28 21:15:26
>>397
君すごい。

関数型って開発環境が無いから使われないのかねぇ。
使われない理由を積極的に考えて、そこを改善していけばいいと思う。
行き着く先はC#みたいなものになるかもしれないけど、
たぶんC#よりちょっといいものができる気もする。

APIが移植されてないとかそういう理由かな。

関数型でTomcatみたいなのを作ろうかと思ってるんだけど、
お勧めの言語とOSってあります?

399:デフォルトの名無しさん
05/09/28 21:57:24
OCaml + Linuxでいいんじゃね?

400:デフォルトの名無しさん
05/09/28 22:12:08
俺は小学生派

401:デフォルトの名無しさん
05/09/28 23:08:08
俺はツンデレ派(日頃関数型言語の悪口ばっかり言ってるけど、
家に帰るとPythonでバリバリラムダりまくっちゃうの)

402:デフォルトの名無しさん
05/09/28 23:16:24
純粋関数型以外は関数型言語ではないと思うので,
Haskell & Linux


403:デフォルトの名無しさん
05/09/29 00:19:48
迷うなー

そんな時間もないから、OCamlかHaskellのどっちかにしたい。
どっちも気に入ってる言語だから、
誰かもっと決定的な理由が欲しい。

Tomcatのようなミドルウェアを置くか、
ミドルウェアを見せないで、
ASPやJSPみたいなテンプレートエンジンを作ってしまうかでも迷ってる。



404:デフォルトの名無しさん
05/09/29 00:43:42
>>398
>関数型って開発環境が無いから使われないのかねぇ。
開発環境いうよりは、まともなフレームワークが少ないからだと思う
関数型便利だ便利だっていってる人の大半はなんだかんだ理屈ならべて
ちっこいプログラムしか書かんから、
そもそもそういうでかいライブラリの需要もすくないんだろーな


405:デフォルトの名無しさん
05/09/29 00:49:43
手続き型言語ならCやC++の既存のライブラリを利用する口金合わせも簡単だけど、
関数型はそうもいかんもんねえ。

406:デフォルトの名無しさん
05/09/29 02:11:48
>MLはCで書かれたプログラムです。
なんてあるけど、一部のlibraryやoptimizerとしてC言語があるだけで、
別に何の言語でもいいんじゃねー?


407:デフォルトの名無しさん
05/09/29 15:08:18
>>406
それはネタだから。
ネタにマジレスかっこ悪いって。

408:デフォルトの名無しさん
05/09/30 04:30:28
関数型って日本語処理できないから嫌い

409:デフォルトの名無しさん
05/09/30 21:01:16
>>408 がやりたいのは、どの程度の日本語処理だろう。

簡単なテキストフィルターなんかじゃなくて、
もっと高度なことをしたいのかな?


410:デフォルトの名無しさん
05/09/30 21:21:46
Shift_JISの文字を読んで文字単位の操作をすることがあんまり気を付けなくてもできるとか、そんな風味

411:デフォルトの名無しさん
05/09/30 22:35:30
文字なんて整数で扱えばいいじゃん。
なんだかんだでPerlだってそうしてるでしょ?

412:デフォルトの名無しさん
05/09/30 23:48:32
408=410じゃないけど、ポイントになるのは、バイト単位じゃなくて文字単位で扱えることだと思う。
この辺の対応状況については、漏れの知っている限りでは、

OCaml: camomile を入れれば、いろんな文字コードのものをひとまず Unicode
に変換して、統一的に扱うことができる。正規表現だととりあえず PCRE がUTF対応。

Haskell: Hugs は CVS 版が Unicode をサポートをしているらしい。GHCはまだ怪しい感じ。
GHCで鬼車を使うパッチはある。

Scheme: Gauche はきちんと日本語をサポートをしているという印象がある。


というところで、まとめると「できんこともない」というところか。簡単なテ
キストフィルタなら問題ないだろうけど。


413:デフォルトの名無しさん
05/10/01 00:00:43
smlnjをダウンロードしたのですが、どのようにしたらコマンドプロンプトで使えるのですか??初心者のこんな僕にどうか教えてください!!

414:デフォルトの名無しさん
05/10/01 00:28:19
日本語対応は関数型言語の1つの課題だね。

415:デフォルトの名無しさん
05/10/01 00:35:46
なんかいきなり賑わいだしたが、なんかあったの?

416:デフォルトの名無しさん
05/10/01 01:05:56
> Haskell: Hugs は CVS 版が Unicode をサポートをしているらしい。GHCはまだ怪しい感じ。
GHCで鬼車を使うパッチはある。

GHCはコンパイラ自体の字句解析がEUC以外の多バイトコードに対応してない。

417:デフォルトの名無しさん
05/10/01 16:15:33
mod-perlみたいなのがないと
仕事じゃ使えない。

418:デフォルトの名無しさん
05/10/01 22:33:20
仕事 == CGI 書き?

419:デフォルトの名無しさん
05/10/01 23:13:08
自然言語処理です。

420:デフォルトの名無しさん
05/10/01 23:44:18
確かにWEBアプリには使えないね。

421:デフォルトの名無しさん
05/10/02 00:12:31
人権擁護法案がとおっちゃいますよ。

この法案聞こえはいいが、日本滅亡の序曲ですよ。


小泉が人権擁護法案早期に提出 (05/9/29・国会答弁)
スレリンク(liveplus板)

人権擁護法案ってどんなものなんだ?
URLリンク(blog.livedoor.jp)

分かる!人権擁護法案(Flash)
URLリンク(www.geocities.jp)

 言 論 弾 圧 に よ り 2 c  h も 閉  鎖 か ! ?

422:デフォルトの名無しさん
05/10/03 06:18:24
CPUが関数型ってどういうの?どんなインターフェイスなの?

423:デフォルトの名無しさん
05/10/03 14:07:02
全部遅延されているから、キーボードを叩かないと動き始めない。

424:デフォルトの名無しさん
05/10/05 14:29:22
>>422
フォン・ノイマン型アーキテクチャだと関数型といえないだろ
CPU,メモリ,入出力という発想から脱却しないと


425:デフォルトの名無しさん
05/10/05 22:03:31
リスプマシーンあったじゃん。

426:デフォルトの名無しさん
05/10/05 22:31:34
しばらくみてたけど質問の意味がわからないな。>>422

Lispマシーンのinstruction setは関数型じゃありませんって。>>425
それが、hardware Lisp CPUであろうと、Virtual Machineだろうと。

言語としてのLisp自体、制御構造とか副作用とかが
沢山ありますよね。それをサポートするためのinstructionで
いっぱいで、その全体は関数型とは程遠いですよ。
むしろ、ちょっと風変わりな(保守的・古典的な)プロセッサって感じ。

一方、LispマシンorVMの存在は認めた上で、それが関数形言語の
実装という応用に対して便利か?という議論はありえますが、
これにも僕は否定的です。

427:デフォルトの名無しさん
05/10/05 23:16:20
マウスの入力ってどうすんの?

428:デフォルトの名無しさん
05/10/05 23:30:43
関数型CPUはメモリーもレジスタもないんだよ
値は命令間を直接流れる


429:デフォルトの名無しさん
05/10/06 00:42:28
CPUっていうか
FPGAの設計に落とし込んだりできないだろうか。

430:デフォルトの名無しさん
05/10/06 02:09:02
環境は?

431:デフォルトの名無しさん
05/10/06 02:10:38
関数型っていうのはプログラミングの際に有用な概念であるけれど、計算機の構造上の有用性はあるの?

432:デフォルトの名無しさん
05/10/06 02:29:19
URLリンク(www.shiro.dreamhost.com) 2005/09/30 の所
URLリンク(homepage3.nifty.com)

Lisp/Common Lisp は純粋関数型じゃないから置いておいても、
これからのメニーコア CPU には関数型言語がベストマッチだと
いう考えが出て来てもおかしくはないかな。

433:デフォルトの名無しさん
05/10/06 02:50:14
そうかなあ。レイトレみたく完全に独立な計算をパラに展開するのは
容易だが、相互に通信したり状態を共有したりするようなのは
純粋関数型で書くのはなかなか難しいと思う。
例えば探索なんか一見パラにできそうでもキャッシュやルックアップテーブルが
きちんと機能して枝刈りできないとつらいっしょ。

>>432のリンク先に書いてあるようなミクロな並列性はスレッドをプールから
ひっぱってきてアサインして完了を待つなんてことやるコストに引き合うか
疑問でしょ。たぶんプロファイルとった上で限られた部分にだけ適用しても
引き合うんじゃないの。行列計算とかならともかく、インタラクティブなもの
はたいがい状態引き回しが必要だろうし。

>>432みたいのはちょっと、裏付けなさすぎの与太話の域を出ないんじゃないかな。


434:デフォルトの名無しさん
05/10/06 13:28:45
関数型がくそに思えてきた今日この頃。

435:デフォルトの名無しさん
05/10/06 19:15:02
>>428
Tomasulo algorithmは見方によっては命令間で直接データを渡してるな。
見方によってはただのレジスタリネーミングだけど。


436:428
05/10/06 21:22:11
ほほぅ。思いつきで言ってみたが、いいセンスしてるな。俺。

437:デフォルトの名無しさん
05/10/16 18:58:16
関数型マンセーな人の何割かが実践してプログラム組めば、
関数型が使えないなんてことにはならないかもしれんな
と最近思った。


438:デフォルトの名無しさん
05/10/16 19:31:10
そういう面倒なだけで論文の書けないことは、下々の皆様にお任せします。

439:デフォルトの名無しさん
05/10/17 23:27:54
研究者でも何割かはまともな論文書いてないだろうし、
って言ったら怒る?


440:デフォルトの名無しさん
05/10/18 00:04:29
Common Lispで実践的なプログラムを書いてみる入門書が無料で読めるね。
まだちょっとしか読んでないけどなかなかおもしろいよ。

URLリンク(www.gigamonkeys.com)

441:デフォルトの名無しさん
05/10/18 00:20:32
目次だけ見ましたが、>>440 Common Lispで(Common Lispっぽい)実践的な
コードを書く話かと思います。関数型言語と関係があるように思えませんでした。

Common Lispを関数型言語とは普通呼ばないし、Lispの中でもCommn Lispは
関数型プログラミングはやりにくい部類ですよね。

442:441
05/10/18 00:33:53
うげ!
今改めて>>1をみたら、Lispスレや、あろうことかEmacs Lispスレまで
関係あることになってるのな。そういうpositionのスレだとは知らんかった。

てなわけで、関数型に対してカタクナ過ぎる俺は無視して続けてくれい >>440

443:デフォルトの名無しさん
05/11/01 22:07:10
そこまで気にする必要ないよ。
多少の派閥があるだけだから。

444:ハーピィ
05/11/01 22:23:52
E・∇・ヨノシ <444ゲット♫

445:デフォルトの名無しさん
05/11/06 00:08:28
>>442
つうか Lisp の中で特別 Common Lisp が関数型やりにくいってのは誤解だと思
われ。ただ単にマルチパラダイムなだけでやるやつはやる。そんとき特別
Scheme よりやり難いってわけでもない。型推論とかパターンマッチング構文も
いくつか実装があったような


446:デフォルトの名無しさん
05/11/06 02:43:18
Ocamlの質問ってここでしていいですか?
URLリンク(www.kb.ecei.tohoku.ac.jp)
の88pの練習問題 字句木をやっているんですが、stringの先頭から
順番に文字を受け取りたいときってどうすればいいんですか。
もちろんstr.[n]ってすればできるんですけど、
リストみたいにもっとスマートにできないんですかね。

447:デフォルトの名無しさん
05/11/06 03:08:39
>446
一応より特化したスレがあるが

関数型言語ML(SML, OCaml, etc.), Part 3
スレリンク(tech板)

448:デフォルトの名無しさん
05/11/06 03:48:10
>>446
残念ながら、そういう方法はない。ので、
1. str.[n]を駆使する
2. 自分で list_of_string を書いてリスト化してから処理する
3. Stream.of_string を使って Stream で処理する
4. そのほか
のどれかをやるしかない。

この練習問題くらいなら 2 だろうなという気がする。


449:デフォルトの名無しさん
05/11/15 15:28:30
String.iter

450:デフォルトの名無しさん
05/11/19 16:19:08
何この差wwwww

URLリンク(sourceforge.net)

C++ 16669
Java 16645
C 15876
PHP 12092
Perl 6187
.
.
.
LISP 323


451:デフォルトの名無しさん
05/11/19 18:22:43
Ruby 398( ´,_ゝ`)プッ
Visual Basic .NET 289(*≧∇≦)ノ☆ ギャハハ プギャー

452:デフォルトの名無しさん
05/12/15 08:10:46
誰か STM(software transaction memory) とはどーいうものか
教えてくれぬか

453:デフォルトの名無しさん
05/12/15 09:53:20
>>452
マルチスレッドプログラミングで、スレッド間の(mutableな)共有変数を扱うとき、
コードの特定の部分が他のスレッドに割り込まれることなく(つまり、atomicに)実行されてほしいことがある。
STMの考え方は、その部分で起こった共有変数への読み書きを局所的なログに保存しておいて、
その部分が終了したときまとめてメモリに反映するというもの。
最後に不整合が見付かった場合、ログを捨てて最初からやり直す。

こういうとき普通はロックを使うんだけど、ロックにはいくつか問題がある。
例えば、共有変数を扱う二つの(副作用のある)関数A,Bがあったとして、
A,Bともに正しくロックを使っていたとしても、「Aを呼び、次にBを呼ぶ」ことをatomicに行う
関数を書くには、AとBの抽象化を破壊してどの変数をロックすべきかを調べないといけない。
STMはこの問題を解決する。

URLリンク(www.research.microsoft.com)
俺はこれの前半を読んだだけだから、変なことを言ってたら突っ込んでくれ。

454:デフォルトの名無しさん
05/12/15 22:23:18
optimistic lockingでやるってことか。
最後にコミットするときはロックによるatomicityの保証がいる筈だが、
Cで書いたcommit APIの中に閉じ込めるのでHaskellからは見えないということ
みたいだな。
>>453の論文の範囲では、Haskellはuni-processorのみ、かつuser-level
threadが safe pointでしか切り替わらないからCで書いた部分はアトミック
と考えていいらしい。Rubyと同じってことだね。


455:デフォルトの名無しさん
05/12/16 10:24:50
誰か関数型プログラミングどんなものか教えてくれ。
普通のウィンドゥプログラムとかかけるの?

456:デフォルトの名無しさん
05/12/16 10:28:19
>>455
書けるに決まってるだろハゲ。チューリング完全を何だと思ってやがる。

457:デフォルトの名無しさん
05/12/16 10:29:27
>>453
>ログを捨てて最初からやり直す。
うーん、まだpaper読んでないけど、これってどう実現するんだろう
整合性が確かめられるまで無制限にやり直すのだろうか

458:デフォルトの名無しさん
05/12/16 19:09:50
それよりコミット(反映)する際には結局ロックが必要そうな…

459:デフォルトの名無しさん
05/12/16 19:43:54
コミット中に、他のスレッドに割り込まれないように実装してるんだよ。

460:デフォルトの名無しさん
05/12/16 20:53:42
>>456
手続き型と何が違うんだ?3行でわかりやすく書け。このちんかす。

461:デフォルトの名無しさん
05/12/16 22:33:11

が違


462:デフォルトの名無しさん
05/12/16 22:58:34
>>459
ユーザレベルスレッドでしか使えないのか

463:デフォルトの名無しさん
06/01/06 21:07:13
割りかし有名な 3D ポリゴンモデラーで Wings 3d つーのがあるんだけど、
ソース見たら Erlang で書かれてた。Erlang で書かれた本格的なアプリなんて
見た事無かったから少し驚いた。

URLリンク(www.wings3d.com)

普通にサクサク動くし、Erlang ちょっと良いかも。
でも、日本じゃ何故か人気無いね。なんでだろう。

464:デフォルトの名無しさん
06/01/06 21:31:47
国が国策としてHaskellを支援するべき。
チャイナと戦うためにはそれしかない!
最近、大原麗子見ないけど、どうしてるんだろう?

465:デフォルトの名無しさん
06/01/06 21:54:13
いちおう聞くけどなぜ Haskell なの?

466:デフォルトの名無しさん
06/01/07 12:03:29
CやJavaは適度にプログラマの職を増やしてくれる。
雇用の創出こそが一番大事で、ものの良し悪しなど二の次なのですよ。
でも、結果として生産性において負けるようなことがあるなら、
それは雇用が減るということで、渋々新しいものが導入される。

467:デフォルトの名無しさん
06/01/07 20:30:41
国策ならRubyだろ

468:デフォルトの名無しさん
06/01/30 22:11:12
>>467
  ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_
  \/    /
     ̄ ̄ ̄


  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_
  \/    /

469:デフォルトの名無しさん
06/02/12 13:39:24
プログラマの地位向上を国策とすべきだ。

470:デフォルトの名無しさん
06/02/12 15:45:35
無能文系プログラマを締め出せばいい。
ハスケル標準
さらにスピード要求の機能はCやアセンブリ

471:デフォルトの名無しさん
06/02/12 18:43:42
授業の課題で、
「MLやHaskellに代表される関数型プログラミング言語について調べ、
PascalやC言語に代表される手続き型言語との相違を説明するとともに、
関数型プログラミング言語が広く普及していない理由を議論しなさい。」

というのが出たのですが、さっぱりです。
頭のイイおまいら、教えてください!!

472:デフォルトの名無しさん
06/02/12 18:53:40
つ【google】

473:デフォルトの名無しさん
06/02/12 21:41:29
>>471
とりあえずラムダ算法がベース。ここまでで広義の関数型言語(関数的、とも云える):Lisp方言やMLなど
参照透明性があるとか副作用がないとか(副作用はモナドや一意型などで解決している):HaskellやClean
普及してない理由はCやJavaやPerlがなんで普及しているかを考えればおk
詳細は URLリンク(www.shiro.dreamhost.com)
俺の個人的見解では「ある言語しか知らないプログラマはその言語でしか物を考えられない(ほげ言語のパラドクス)」と
関係してると思う。ほげ言語のパラドクスについては URLリンク(www.shiro.dreamhost.com)

474:デフォルトの名無しさん
06/02/12 21:43:00
あー、参照透明性があるとか副作用がないとかそういう言語を特に「純粋な関数型言語」とか云うらしいぜ。
Wikipedia とかも見とけ。

475:デフォルトの名無しさん
06/02/12 21:57:04
関数型言語の定義は厄介だな。
「関数プログラミングをencourageする言語」と言ったところか。
Basic, C, C++, Javascript, Lisp, ML, Haskell
のうち、適当なところから右が関数型言語ということになるかな。

「ラムダ計算を基礎とする言語」という定義は、Unlambdaという例外があるのでよくないと思う。

476:デフォルトの名無しさん
06/02/12 22:04:48
>>475
474ですが、Unlambdaでぐぐったら「Unlambdaは、obfuscated programming languages
(混乱させるプログラム言語、といったところでしょうか) の一種として開発された言語です。
しかしただそれだけではなく、純粋関数型言語というもう一つの特徴も持っています」
とあったのですが……。しかし生産性は高くなさそうですね。

#広義の関数型言語、のもっといい定義というか表現、誰かお願いします

477:デフォルトの名無しさん
06/02/12 23:45:47
a href     "


478:471
06/02/13 00:53:18
>みなさん
色々ありがとうございます。
今日色々考えてみて、実際問題として、数学的な考えをもてるプログラマが少ないことが一番
関数型プログラミング言語の普及を妨げてるのかな、と思ったんですが、どうでしょうか?

素人なんで、間違っていたらすみません。

479:471
06/02/13 01:33:29
レポート記入途中なのですが、
「広義の関数型プログラミング言語とは~であり、LispやSchemeがこれに含まれる。
より厳密な意味での関数型プログラミングとは~であり、Haskellが挙げられる。」
という文章を書きたいのですが、~にはどういう内容を書けば適当でしょうか?

因みに、厳密な定義の要件としては、「参照透過性」を満たすだけでよいのでしょうか?


480:デフォルトの名無しさん
06/02/13 01:47:20
>>479
広義の方はラムダ算法とか高階関数とかがごく普通に使われる言語、みたいな感じでいいと思うよ。
厳密の方はWikipedia によれば(URLリンク(ja.wikipedia.org))
どうもそうっぽい。宣言型言語とも呼ばれるみたいだね。

#レポートの成功とそう遠くない将来、関数プログラマとしてここに来てくれることを期待する:-)

481:デフォルトの名無しさん
06/02/13 01:47:40
URLリンク(www.cs.nott.ac.uk)


482:473
06/02/13 01:48:39
URL は
URLリンク(ja.wikipedia.org)
だね。閉じ括弧までURLと見なされる@xyzzy+2ch-mode

483:デフォルトの名無しさん
06/02/15 04:54:07
Mirrandaってどんなの?

484:デフォルトの名無しさん
06/02/15 04:58:49
Oberon と Mirranda はあるのに Titania は無いのか。

485:デフォルトの名無しさん
06/02/15 07:47:17
数論的プログラミングってなんでないの?
くだらない言語ばっかり山のように作って、
それらの上にくだらない意味論を定義して。
ゴミを山盛りにするのが言語屋の仕事ですか?

486:デフォルトの名無しさん
06/02/15 09:41:43
言いだしっぺの法則発動

487:Why not FP ?
06/03/24 21:35:32
関数型プログラミングがイマイチ流行らない原因について;
手続型に較べて高度な抽象化が要求されるけど、普通の人にはそれほど高度な抽象化ができないから。
高度な抽象化ができるのは極一部のプログラマだけで、マジョリティではないから。
…と思ったんだけど、どーよ?

488:デフォルトの名無しさん
06/03/24 22:13:02
わざわざ抽象化しなくても手続き型でごりごり書けちゃうし、そのほうが速い(書くのも実行するのも)
という意識があるからではないだろうか

489:デフォルトの名無しさん
06/03/24 22:16:42
>>487 単純に普通プログラマーが目にする言語が関数型じゃないものが多いということだと思われ。
つーか自分がそうなんだが・・・

関数型のプログラムの感じつかめるサイトないでしょうか・・・
長くてもかまいません。

490:デフォルトの名無しさん
06/03/24 22:20:07
>>487
それもあるかも知れないが、関数型言語を使えるのに
趣味でコーディングするときには使わない人が多いことを考えると
他にも大きな理由がある気がする。

491:デフォルトの名無しさん
06/03/24 23:07:56
趣味の関数型コードを公開しないだけでは?

492:デフォルトの名無しさん
06/03/25 04:25:03
XSLTって関数型言語にいれていいか?
あれなら、結構Webに転がってると思う

493:デフォルトの名無しさん
06/03/25 23:07:55
グラフィック(GUI)とか日本語処理とか
ライブラリが揃ってれば、、
(日本語ドキュメントつきで)

実験コードからちっとも先に進まない俺


494:デフォルトの名無しさん
06/04/10 20:21:55
>>493
それなら日本語ドキュメントは少なめだが(でも今年本が立て続けに出るらしい)Haskellがオススメ。

495:デフォルトの名無しさん
06/04/10 20:36:41
いまのGHCは多バイト文字の処理に関してはうんこなのでHaskellは勧められない。

496:デフォルトの名無しさん
06/04/10 22:04:14
GHCはたしかに多バイト文字は駄目すぎだが、Hugsだと大丈夫。

497:デフォルトの名無しさん
06/04/18 01:42:02
関数型プログラムをC++で実現したいんだけど、遅延評価とかは無理だよね??
lambda をなんとなく実装してみたけど、遅延評価は実装できなかった・・・。


498:デフォルトの名無しさん
06/04/18 09:29:51
>>497
無理ではない。

499:デフォルトの名無しさん
06/04/18 14:40:09
>>498
どうやるの?

500:デフォルトの名無しさん
06/04/18 15:57:49
lamdaができれば遅延評価もできるんじゃね?

501:497
06/04/19 00:59:45
ちょっと、説明がわるかったっすね。。

ただの遅延評価(BOOST とかの lambda)はコンパイルレベルで出来るのでOKなんですけど、
たらいまわし関数を最適な形で処理できる遅延評価をC++で実装したいわけなんです・・・。

502:デフォルトの名無しさん
06/04/19 01:04:53
ああ、ただのthunk化という意味での遅延評価なら難しくないが
完全遅延、すなわちグラフリダクションを実装するのは難しいな。
Haskellをほぼ全て実装することに等しい。

503:デフォルトの名無しさん
06/04/23 01:56:04
Reactive Programmingというものがなんであるかを素人の漏れにも解るように
5分以上かかっても構いませんのでどなたか解説をおながい致します m( _ _ )m

504:デフォルトの名無しさん
06/04/23 07:18:36
解説してみようと思ったが、「漏れ」「おながい」という言葉が大嫌いなので止めた。

505:デフォルトの名無しさん
06/04/23 10:06:23
Erlangってつかてる人いる?

506:デフォルトの名無しさん
06/04/23 13:59:55
>504
そんなこといわないで、お・ね・が・い♥

507:デフォルトの名無しさん
06/04/28 00:06:17
C++でムリヤリクロージャーする関数書いたら出来た(・∀・)アヒャ!!

一部 BOOST の Lambda で使われてるテンプレート駆使したらほぼ望みどおりのものが出来ましたよ。

自前の Lambda もつくってみたけど、戻り値をTypeList(BOOST では tuple だっけ?)をつかっててクロージャーには使えなかった('A`)

508:デフォルトの名無しさん
06/04/28 11:31:41
早くそのコードを公開するんだ

509:デフォルトの名無しさん
06/04/30 02:03:00
>>505
ノシ

まあ、あまり関数型言語という意識はないけど。

510:デフォルトの名無しさん
06/05/03 12:12:23
自前じゃない実行環境、特にVM系、の近況が分かるページないでしょうか。
JVM, Parrot, C--など。(C--は中間言語かな)

>>422
すげー亀レスで、しかもちょっと方向が違うけど、
昔九州大学で、データフロー計算機の上で関数型言語動かしてましたよね。

511:デフォルトの名無しさん
06/05/03 12:13:30
そういや、一部Haskellを使ったPerl6はあるのに、(Pugs)
Parrot上で動くHaskellはないんですね。
List(cons)の実装が非効率的になるからかな?

512:デフォルトの名無しさん
06/05/04 14:21:56
Parrotの魅力を語ってくれ

513:デフォルトの名無しさん
06/05/04 19:01:51
Parrotって、Perl6用に使われるVMってことでいいんすか?
ちょっとスレ違いかも知れんけど

514:デフォルトの名無しさん
06/07/30 11:27:03
保守age

515:デフォルトの名無しさん
06/09/25 07:49:03
学生でも教員でもないんだけどJournal of Functional Programmingって大学の図書館とか研究室くらいにしか置いてないんですかね。

516:デフォルトの名無しさん
06/11/04 13:02:33
「関数型プログラム」は「ラムダ計算」と何が違うのですか?

517:デフォルトの名無しさん
06/11/04 20:04:30
ラムダ計算はプログラムじゃないねぇ

518:デフォルトの名無しさん
06/11/04 22:23:23
え? 違うんですか???

519:デフォルトの名無しさん
06/11/05 00:07:07
プログラムの基礎理論 _で重要な_ 論理体系と言うか数学体系と言うか
プログラムが実行されるということの本性をモデル化しようとしたらああなった,ってんだけど
# 歴史的経緯はよく知らない

520:デフォルトの名無しさん
06/11/05 00:48:00
>>516
関数型プログラムって何だろう。
まず一括りにするとややこしいから具体的なものを出してちょうだい。

そして、おそらく現存するものは知りうる限りすべてラムダ計算とはちがう。

521:デフォルトの名無しさん
06/11/23 19:39:21
>>520
関数を変数として扱えること

522:デフォルトの名無しさん
06/11/23 21:24:56
>>521
じゃあCは関数型言語ですね!
qsortとかbsearchとかどうみても関数を値として使ってます

523:デフォルトの名無しさん
06/11/23 21:44:42
>>521 でりげーとでいいやん

524:デフォルトの名無しさん
06/11/23 22:08:35
第一級の値

525:デフォルトの名無しさん
06/11/23 22:12:41
型理論!!!!!!!

526:デフォルトの名無しさん
06/11/23 22:14:13
Cの関数は第一級だよな。
実行時に作る手段がないだけで。

527:デフォルトの名無しさん
06/11/23 22:17:21
デリゲートの数学的モデルを教えてください

528:デフォルトの名無しさん
06/11/24 23:19:32
Haskellは
型付ラムダ式に
いろいろ付け加えたものに
みえるけど。

(型付と形無しは別物ではあるけど)

529:デフォルトの名無しさん
06/11/24 23:21:55
やぁ、伊藤君。

530:デフォルトの名無しさん
06/11/25 12:20:39
誰?

531:デフォルトの名無しさん
06/11/25 13:45:08
>>530
ググレカス

532:デフォルトの名無しさん
06/11/25 14:21:56
で。誰?
URLリンク(www.google.co.jp)


533:デフォルトの名無しさん
06/11/28 07:00:43
URLリンク(lambda-the-ultimate.org)
要約
「最近Lambda the Ultimateへの記事投稿が減ってるんだけど,このまま行ったら消滅しちゃうことになるよ?」

534:デフォルトの名無しさん
06/11/28 16:03:28
LtU、度々同じ文句言ってるよなw

535:デフォルトの名無しさん
06/12/01 10:25:30
Erlangスレってここでよいでつか?

536:デフォルトの名無しさん
06/12/01 20:56:08
Erlang スレではないけどここでいいんじゃない。
答えられる人がいるかどうかは知らんけど。

537:デフォルトの名無しさん
06/12/01 22:00:04
erlangのことどう発音してる?
エアランク?
アーラン?

538:デフォルトの名無しさん
06/12/02 00:18:29
アーラン。

539:デフォルトの名無しさん
06/12/02 00:31:39
あーらん

540:デフォルトの名無しさん
06/12/02 01:53:14
ぇろぁん(鼻音で)

541:デフォルトの名無しさん
06/12/02 07:10:28
ドイツ語だから、えあらんく

542:デフォルトの名無しさん
06/12/03 17:51:57
アッラーフアクバル

543:デフォルトの名無しさん
06/12/05 14:19:57
あなあっへんばっく

544:デフォルトの名無しさん
06/12/08 01:16:57
λ計算スレを情報学板に立ててみました.
スレリンク(informatics板)


545:デフォルトの名無しさん
06/12/09 17:53:53
関数型言語ってI/Oが苦手だよね?
キーブレイクで改ページ入れ一定件数ごとにも改ページ入れる帳票出力とか難しくない?


546:デフォルトの名無しさん
06/12/09 18:46:24
IOが苦手というのも賛同できんが、それはそもそもIOじゃないだろ。
むしろそういうのは得意な方だと思うんだが。

547:デフォルトの名無しさん
06/12/12 18:39:17
関数型って便利だけど使いどころ難しいよね。
関数を動的に作成するのは魅力的だけど、
「じゃあ、どこで使用すれば効率がいいか?」って言われたら、
うーんってなっちゃう。。

今のところ、「株のスクリーニングの条件を自分でプログラムできる」ぐらいしか
アプリケーションへの応用が思いつかないです。
現在の株のスクリーニングとか出来るHPは細かいところまで指定したいのに
なかなか出来ないことが多いので。。

他に何かいい適用個所ってありますか?

548:デフォルトの名無しさん
06/12/12 19:01:42
>>547
自分でプログラムできるのは、別に関数型じゃなくてもいい気がするが、
トレード用のソフトは自前のスクリプトを実装している場合が多い。

549:デフォルトの名無しさん
06/12/12 19:08:17
>>547
第一級の関数の真価は、そんなマクロというか設計レベルの話じゃなく、
アルゴリズムの実装とか、従来forやらifやらで実現されてきた定型処理のようなものが
簡潔に書けることにあると思う。

550:デフォルトの名無しさん
06/12/31 19:35:44
質問です。
関数型言語で問題なく日本語を扱えるものには、どんなのが有るでしょうか?
haskellは無理みたいです・・・

551:デフォルトの名無しさん
06/12/31 20:44:27
>>550
Gaucheとか。

552:デフォルトの名無しさん
07/01/15 22:18:12
>>550
俺も>>551に一票。
ホント自然に使えてかっこイイ。

553:デフォルトの名無しさん
07/03/26 20:54:29
あげ

554:デフォルトの名無しさん
07/04/09 12:03:51
コンビネータって、実際のプログラミングでどんなトコに使ってどう嬉しいの?パーサ以外にある?

Yコンビネータって、グローバルな名前空間を汚さずに再帰関数を受け渡すために使う?ユースケースが浮かばないんだけど。


555:デフォルトの名無しさん
07/04/09 12:16:20
頭がおかしい人の書き込みですので、スルーして下さい。(精神病院担当医師)

556:デフォルトの名無しさん
07/04/09 12:16:39
Yコンビネータの話は普通の言語ではグローバル関係ないか。ローカル名でも、スコープ外の場所でもふつう再帰できるよね。
とするとますますYコンビネータの使い所がわからない。

557:ワロタ
07/04/09 12:18:01
これがオブ脳って奴か

そのうち「チューリング・マシーンって実際のプログラミングでどんなトコに役立つの?」
とか言い出す気かw

558:アホ
07/04/09 12:39:03
虚無空間でのブーツ・ストラップみたいなもんだろ実際

559:デフォルトの名無しさん
07/04/09 12:42:32
理論上重要だからって、それが実際のプログラミングに直接的に役に立たないということにはならないよね。
実際、パーサコンビネータなんて役に立つし。


SKI自体を普通のプログラムから直接使わないだろうけど、
Gaucheのマニュアルでcombinatolic programmingなんて言葉を見たし、
うまく役に立つ方法や方面があるんじゃないの?

560:バカ発見
07/04/09 12:49:19
純粋な関数型モデルで再帰を表現でき、
それが単純明快なプログラミング言語モデルの一つとなっている
ってだけの話だろ、表面的な所では。

詳しい話はスコットの領域理論を読み直せ>>焼き豆腐


561:デフォルトの名無しさん
07/04/09 12:50:43
× 単純明快なプログラミング言語モデルの一つ
○ 単純明快な(純関数型)プログラミング言語モデルの一つの根拠

562:デフォルトの名無しさん
07/04/09 12:53:34
焼き豆腐ってLispやってたんじゃねぇ~のか?
だらしねぇな

563:デフォルトの名無しさん
07/04/09 12:58:01
豆腐の学習態度は、梯子を登らずにいきなり屋根の上に登ろうとする愚挙に似ている。

564:デフォルトの名無しさん
07/04/09 13:13:35
コンビネータの元は
関数型言語モデル業界で
λ計算とともにその根拠となっている
コンビネータ理論だな。

FortranやBNF記法の父 John Backus が
ACM受賞講演で語った関数型言語 FP が
ちょうどこの理論で作られてたっけ。
その辺りで関数型言語が再評価されて、
現代の関数型言語ブームにつながった、と(おおぼけ)

Lispも最初はλ計算に基づいていたけど、
70年代には立派な手続き型言語に堕ちていたな。

565:豆腐って?俺の脳が豆腐って事?まあいいけど
07/04/09 13:14:19
パーサ以外にも、あっておかしくないと思うんだけどな。
CPSみたいにひとつのスタイルって言うかそれベースのライブラリ的なのが。

ないの?

566:デフォルトの名無しさん
07/04/09 13:15:12
豆腐の話は飛躍ばかりするが
ベースが確立されていないので
答ようがない。

567:デフォルトの名無しさん
07/04/09 13:16:31
豆腐スレ
スレリンク(tech板)

568:デフォルトの名無しさん
07/04/09 18:43:11
XML関係はコンビネーターで書かれてるのが多いよ。

569:デフォルトの名無しさん
07/04/09 19:14:35
それは興味深いですね。

高階関数を使って再帰下降型パーサを構成する
といったお話でしょうか?

それとも・・・
金融関係のお話でしょうか?


570:デフォルトの名無しさん
07/04/09 20:43:22
単に「論理式はand, or, not結合子と論理値で構成される」
というのと同じような意味でXMLのelementをCombinatorと呼んでいるだけと思われ。

似たような発言で「Haskll上にDSLを作る」を「HaskellにCombinatorを追加する」と言ってしまうDQNも多し。


571:デフォルトの名無しさん
07/04/09 21:03:35
コンビネータって結局何なの?
「自由変数のない関数」って意味ならプログラミング言語のあらゆる関数がそうだと思うんだが。

572:デフォルトの名無しさん
07/04/09 21:16:53
>>571
はあ。それは良かったですね。

573:571
07/04/09 21:25:27
>>572
すまん、素人なので変なことを言ってるかもしれん。
良かったら門外漢にも分かるように説明してくれないか。

574:デフォルトの名無しさん
07/04/09 21:34:02
無意味

575:デフォルトの名無しさん
07/04/09 21:57:29
>>573
コンビネータは、ぶっちゃけ 「自由変数のない関数」 で合ってるよ。
んで、プログラム言語のあらゆる関数がそうだと思うのなら、別にそれでも良いよ。間違ってはいないさ。

576:デフォルトの名無しさん
07/04/09 22:04:09
なんという結論

さすがFランク

577:デフォルトの名無しさん
07/04/09 22:18:37
自分の認識だと、引き数に関数のみ取り、
引き数で受け取った関数を何らかの形で組み合わせたものを返す以外のことをしない関数、
みためでいえば、
中身には引き数以外の名前が現れない関数、って理解だけど、あってる?

578:デフォルトの名無しさん
07/04/09 22:44:20
コンビネータ

「コンビネーター計算は、λ計算と同等のことを変数やλ抽象を持たず、
 ただ適用だけをもつシステムで実現しようとしたものであって、λ計算とは別物」というのは同意。

ただ、(コンビネータ計算ではなく)ラムダ計算の文脈では、単に「自由変数を含まないλ式」
という意味で結構広く使われているように思いますし、私もそのように理解してました。
本来は誤用だったのかも知れませんが、すっかり定着してしまっているように思います。

調べてみると、Simon Peyton Jones の
The Implementation of Functional Programming Languages の p.224 には
「A combinator is a lambda expression which contains no occurences of a free variable [Barendregt, 1984]」
と書いてあります。ちょっと探した限りではバーレンドレヒト以前でこの意味で使っているのは見当たらなかったので、
この用法はやっぱりバーレンドレヒトが起源なのかも。それはそれでちょっと面白いなぁ。


579:デフォルトの名無しさん
07/04/09 22:51:46
またjargon fileの解釈論争みたいな塩梅だなあ

580:flatline ◆r6EONKKhcc
07/04/10 02:04:09
>>554
こんなのもありますよ
URLリンク(citeseer.csail.mit.edu)
Y in Practical Programs

581:デフォルトの名無しさん
07/04/10 02:12:26
おお、これは!
でも、PSもPDFもみんな見れない…。
右上のView or download:から本文を見るんだよね?

582:デフォルトの名無しさん
07/04/10 03:17:32
(さっきコテハンを使ってしまったのは失敗だった)

最近CiteSeerのミラーがどこもまともに機能してないなぁ...
こちらで っ[ URLリンク(citeseer.ist.psu.edu) ]

主張を要約すると「再帰関数を(わざわざ)Yコンビネータを使って定義するようにすると
- メモ化したくなった
- エラーの際にデフォルト値を返したくなった
- call treeを調べたくなった
等を含む色々な場合に拡張がすんなり行きますよ」というものです

まぁ読んだからって人生変わるほどのすごい論文ではないですが,小ネタとして

583:デフォルトの名無しさん
07/04/10 07:33:46
コンビネータ論理チュートリアル URLリンク(e.tir.jp)

584:デフォルトの名無しさん
07/04/10 07:50:12
>>580氏が別の分野でもλ関連やってる事を今朝初めて知ったw

585:デフォルトの名無しさん
07/04/10 22:08:02
やっぱ、頭の悪い人間が関数型言語とかに手を出しちゃいけないんだなぁってのが
この流れでよくわかった。

いちばんタチが悪いのは、単に無能なんじゃなくて「自分はわかっている」という
壮絶な勘違いにすぐ走ることだね。

586:デフォルトの名無しさん
07/04/10 22:18:42
で?

587:デフォルトの名無しさん
07/04/10 22:22:36
いちいち反応すんなよw

588:デフォルトの名無しさん
07/04/10 22:26:59
Barendregtが自由変数無しλ式指して
「あぁ~コンビネータの話?」って俺様定義するのと、
ヘタレがミニ言語作るだけの行為を指して
「俺、コンビネータ作っちゃおうかなぁ~」と意味不明発言するのでは
雲泥の差がある、ような気がしないでもない。

589:デフォルトの名無しさん
07/04/10 23:16:07
たぶんどっちもjargonだ

大して違わねぇよ
というような気がする

590:デフォルトの名無しさん
07/04/11 21:19:09
>>570
そっちじゃなくて、XMLを操作する手続きというかフィルタを合成していく方。


591:デフォルトの名無しさん
07/04/11 21:26:30
高階関数を使って再帰下降型パーサを構成する
といった類の話ですね。

592:デフォルトの名無しさん
07/04/11 21:28:56
いや慎重に言い直しておこう。
最近あぶない人が出没しているようだから。

高階関数を使って構文解析木を処理していく
といった類の処理なんじゃないですか?

593:デフォルトの名無しさん
07/04/21 12:18:15
ストリングリダクションについて調べたいんだけど取っ掛かりになりそうな本ってないだろうか。

スレ違いっぽくて悪いんだが他に訊けそうなスレがないんで頼む。

594:デフォルトの名無しさん
07/04/21 12:20:23
まだ項書換系とか学部レベルの勉強してるのか。

595:デフォルトの名無しさん
07/04/21 12:37:48
コンパイラ・スレの話題だな

596:デフォルトの名無しさん
07/04/28 23:49:44
関数型言語の性質をC++やその他の言語に実装する場合って
みんなどんな書籍参考にしてるのですか?


597:デフォルトの名無しさん
07/04/28 23:59:59
シュプリンガーの関数型言語作成本とか

598:デフォルトの名無しさん
07/04/29 00:04:29
>>597
なんて名前本ですか?

599:デフォルトの名無しさん
07/04/29 00:08:09
自分で探せ
あと、お前の実力では今読んでも力にならないと思う。

600:597
07/04/29 00:11:45
シュプリンガーじゃなくてプレンティスホールだったw

601:デフォルトの名無しさん
07/04/29 00:17:22
>>600
お前さん書籍の名前知らないんじゃねーのw?
プレンティスホールなんてもうねーだろw

602:デフォルトの名無しさん
07/04/29 00:19:56
>>600
プレンティスホールということは
  The implementation of functional programming languages, Simon Peyton Jones, Prentice Hall 1987
でっか?

603:デフォルトの名無しさん
07/04/29 00:22:47
>>601-602
もともと一冊程度しかねぇんだから
いちいち煽んなよクズ

604:デフォルトの名無しさん
07/04/29 00:25:41
>>601
600ではないが(この板はIDが出ないんだなorz)、たしかにピアソンになってるけど
プレンティス・ホールの名前も残ってるぽいし、過去の出版物だとその当時の名前で
引用するので、あながち>>600がまちがってるわけでもない。・・・と思う。

参考:
Pearson Education
URLリンク(www.pearsoned.com)
Pearson Prentice Hall
URLリンク(phcatalog.pearson.com)

605:デフォルトの名無しさん
07/04/29 00:27:37
>>596
URLリンク(citeseer.ist.psu.edu)
みたいな論文とかじゃね?

606:デフォルトの名無しさん
07/04/29 00:30:55
>>597
URLリンク(www.etl.luc.edu)

607:デフォルトの名無しさん
07/04/29 00:40:47
>>604
いちいちもったいぶった物言いして他人に不快感を撒き散らすなよクズ

608:デフォルトの名無しさん
07/04/29 00:49:52
>>596
シュプリンガーのLNCSにありそうな希ガスが見ちゃいねえ。すまん。

609:デフォルトの名無しさん
07/04/29 00:52:11
表紙が紅白の本だったっけ

610:デフォルトの名無しさん
07/04/29 00:58:52
>>609
SPJ本は、そう。
International Series in Computer Science(pub:PH)に共通の装丁があの紅白だと思う。

611:デフォルトの名無しさん
07/04/29 01:03:39
えーと結局どの本なのかいまだに見付けられないヘタレなのですが

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

613:デフォルトの名無しさん
07/04/29 01:15:17
>>612
うーんと、
URLリンク(research.microsoft.com)
のことでしょうか?

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

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

616:デフォルトの名無しさん
07/04/29 01:21:29
>>613
ですね。

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

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


619:デフォルトの名無しさん
07/04/29 01:24:13
語尾にwを付ける人間の発言はスルーすべき。

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

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

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

623:デフォルトの名無しさん
07/04/29 23:03:44
F# ってまだ生きてるの?

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

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

625:デフォルトの名無しさん
07/05/01 21:13:14
URLリンク(www.cbook24.com)
既出?

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

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

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

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

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

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

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

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

634:デフォルトの名無しさん
07/06/07 20:35:07
関数性とエンドユーザ性は直交しないの?

635:デフォルトの名無しさん
07/06/07 20:55:07
関数の無い言語って見たことないんだが

636:デフォルトの名無しさん
07/06/07 21:13:40
機械語やBrainfuckやPrologには関数がないんじゃない?

637:デフォルトの名無しさん
07/06/07 22:05:40
結構いっぱいあるよ

638:デフォルトの名無しさん
07/06/07 22:09:43
N88-BASIC とか

639:デフォルトの名無しさん
07/06/08 01:18:34
Fortressって関数型言語?

640:デフォルトの名無しさん
07/06/08 01:51:20
Prolog には関数あるよ。組み込みだけど。

641:デフォルトの名無しさん
07/06/28 06:49:48
まだあったのかこのスレ

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

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

644:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/10/03 23:13:32
foldとreduceは違うんじゃないの?
fold:リスト要素の型との戻り値の型はちがっても良い
reduce:同じ
じゃない?

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

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


648:デフォルトの名無しさん
07/10/09 23:01:13
>>642
あたらしいことwww
URLリンク(www.blue.sky.or.jp)

649:デフォルトの名無しさん
07/10/10 00:01:42
スゲエ、笑けるw

650:デフォルトの名無しさん
07/10/10 02:07:38
>>648
なんぞこれwwwww

651:デフォルトの名無しさん
07/10/10 14:19:10
ドキュメントが英語なのが最大の笑い所な気がするw

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

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

653:デフォルトの名無しさん
07/11/01 01:50:17
scalaってどうよ?

654:デフォルトの名無しさん
07/11/05 19:12:40
Genericsの互換性がないのが痛すぎる>Scala
F#のほうがよさげ。

655:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/15 23:11:06
Scala わかんないけど、それ単に key = 2 のリストを返してるだけちゃうん?

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

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

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

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

660:デフォルトの名無しさん
07/12/06 07:18:16
つまりfailure-oblivious computingってやつ?

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

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

662:デフォルトの名無しさん
08/03/16 20:58:12
optionalって.NETでいうとNullableみたいなもの?

663:デフォルトの名無しさん
08/03/17 03:39:13
nullでもnilでもなく、Noneですがそうです。

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


664:デフォルトの名無しさん
08/03/17 10:54:19
どみあん

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

666:デフォルトの名無しさん
08/04/01 13:37:07
未来のことなんてわかんねーyp

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

668:デフォルトの名無しさん
08/04/02 04:15:20
50年間そうだったのだからそうだろう。

669:デフォルトの名無しさん
08/04/02 07:26:36
実際そんな感じだよな。

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

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

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

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

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

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

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

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

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

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

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

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

680:デフォルトの名無しさん
08/04/07 01:32:03
論理型言語の現状はどうなってるの?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch