[表示 : 全て 最新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/



214 名前:デフォルトの名無しさん mailto:sage [04/10/22 20:22:24]
黙祷。
LISPの生みの親、Jマッカーシー氏はまだ生きてる、よね?

215 名前:デフォルトの名無しさん mailto:sage [04/10/23 02:09:48]
>>214
元気にサイトの更新なさったりしてます。
ttp://www-formal.stanford.edu/jmc/

216 名前:デフォルトの名無しさん [04/10/23 04:27:03]
すみません、業務でC++とか使ってて
C, Perl, Ruby, Java も一通り触った事はあって、
オブジェクト指向開発とかは好きなんですけど、
関数型言語っていまだに理解できないんです。

ソースの字面を見ても意味が分からないし、
概念もさっぱり分からない。

logさえ分からないヘタレ高卒で数学の素養が
全くない漏れでも理解できる方法ってありませんか?

217 名前:デフォルトの名無しさん mailto:sage [04/10/23 04:44:19]
処理系と解説書を手に入れて動かしてみろ。
スレにでてるコードがそのとおり動くか確かめてみろ。
そのコードの一部を切り取ってみて、どういう動作をするのか調べて確かめてみろ。
部分部分をどういうルールや関数でつなげてるか調べてみろ。
そうすれば理解できるようになる。

218 名前:デフォルトの名無しさん [04/10/23 04:50:32]
>>217
昔オライリーの分厚いEmacs Lisp本を買ったんですけど
Emacsの変態的なUIについて行けずにお蔵入りになりました。。

219 名前:デフォルトの名無しさん mailto:sage [04/10/23 05:12:17]
オライリーの分厚いEmacs Lisp本ってなんだろ?
Emacs Lispリファレンスマニュアルなら一通り読んで全体像をつかんだ後、つまみ食いすればいい。

220 名前:デフォルトの名無しさん mailto:sage [04/10/23 05:18:46]
>>218
Emacs Lispなどという中途半端なものではなく、
Haskellをやりたまえ。
純粋関数型言語なので「これぞ関数型」という書き方ができるようになる。
全く異質なプログラミングパラダイムを味わえるぞ。
pc5.2ch.net/test/read.cgi/tech/1076418993/

221 名前:デフォルトの名無しさん mailto:sage [04/10/23 05:53:36]
Haskellを少し勉強したが、全く異質なプログラミングパラダイムは味わってないなあ。

222 名前:デフォルトの名無しさん mailto:sage [04/10/23 07:36:35]
>>221
>>216
> C, Perl, Ruby, Java も一通り触った事はあって、
これだと高階関数やクロージャも使いこなせてないだろう。

Haskellで彼には新しいだろうこと
* 遅延評価、代入のないプログラミング
* Type-driven programming
* コンビネータ(Lispのマクロに相当するが関数)による構文抽象と言語内言語
* モナドによるコントロールフローの抽象化
* Existential type、type class、といった高度な型システムの"創造的な"利用
    (オブジェクトの代替、オブジェクト自体やグローバル変数の実装、コンテナ、型システム内での計算...)



223 名前:221 mailto:sage [04/10/23 08:01:28]
私は216じゃないです。

224 名前:デフォルトの名無しさん mailto:sage [04/10/23 09:05:35]
>>222
>Type-drivenprogramming

これってどういう事?
Java を指して Class-driven programming って言っちゃうような感じ?

225 名前:デフォルトの名無しさん mailto:sage [04/10/23 11:30:48]
構文解析するとかなら
MLやSchemeがお手軽だよ

226 名前:デフォルトの名無しさん mailto:sage [04/10/23 14:31:08]
>>223
知ってる。

>>224
まず型から考えて、型が合うようにプログラミングすれば
アルゴリズムがついてくるような感じ。

227 名前:デフォルトの名無しさん mailto:sage [04/10/23 17:49:17]
>>225
そもそも構文解析プログラムなぞ作らなくても、MLなら構文木を
表す型を定義すればいいし、Schemeなら適当にS式にmappingする
やり方を決めてそれで書けばいいと思うのだが...


228 名前:216● ◆SKjzm2Ah6. [04/10/23 17:49:44]
>>219
今段ボール箱から取り出して見たらオライリーじゃなくて
ASCIIの「Emacs Lisp リファレンスマニュアル」でした。。

とりあえず今起きたので、>>220のHaskellスレの>>1
載ってたどっかの大学の日本語サイトを見て勉強してます。

>>222
> 高階関数やクロージャも使いこなせてないだろう
これさえさっぱり分かりませんし、
> Haskellで彼には新しいだろうこと
は当然全部意味不明です。。

これから頑張ってみます。

pc5.2ch.net/test/read.cgi/prog/1096545948/
で「漏れって天才!」とかほざいていたんですが、
自信喪失しました。ごめんなさい。

229 名前:216● ◆SKjzm2Ah6. mailto:sage [04/10/23 18:02:05]
>>222
あ、なんかウェブサイトをちょっと読んでて思ったんですけど、
ひょっとしてこうかい(←なぜか変換できない)関数って
C でいう関数ポインタとか Rubyでいう proc (lambda) を
受け取るような関数のこと??
C++ の標準テンプレートでも似たようなことしてるかな。
全然的はずれだったらハズいですけど、、

230 名前:216● ◆SKjzm2Ah6. mailto:sage [04/10/23 18:08:54]
>>222
あ、「クロージャ」で Google 検索したら
capsctrl.que.jp/kdmsnr/wiki/bliki/?Closures
が出てきました。Ruby では普通に使う手法ですね。
業務じゃ全く使ってませんけど。(C++ じゃ使えない?)

231 名前:デフォルトの名無しさん mailto:sage [04/10/23 20:44:56]
高階(たかしな)関数

232 名前:216● ◆SKjzm2Ah6. mailto:tree [04/10/23 20:54:22]
>>231
ほんとだ、それで変換できました。
漢字の読み方も知らなくって本当に恥ずかしいです。
うっかり人前で「こうかいかんすう」なんて読んでしまう前に
正しい読み方を教えてもらってよかったです。
ありがとうございました!



233 名前:デフォルトの名無しさん mailto:sage [04/10/23 21:01:37]
>>229-230
そうなんだけど、もっといろんな使いかたがあるし、よく使う。
関数型になれると、他の言語でも同じ様な書き方ができることに
気づいたり、あるいは、できないことに気づいたりするよ。

C++は関数オブジェクトを駆使するといろいろできるけど、
ポリモーフィズムが無理だし、第一凄く面倒だからやらないね。

>>232「こうかいかんすう」であってるよ(w。君のIMEの辞書が良くないだけ。

234 名前:デフォルトの名無しさん mailto:sage [04/10/23 23:10:13]

大昔、国語の朗読で

「先ずもって」を「さきづもって」と読んだ奴思い出したさげ

235 名前:デフォルトの名無しさん mailto:sage [04/10/23 23:20:46]
>>231
たかしな関数ワロタww
俺が教わった数学の先生に高階(たかしな)先生という人がいたんだよ。
彼が一大発見して関数に名前がついたら区別がつかんようになるなあ。


236 名前:デフォルトの名無しさん [04/10/24 01:22:23]
>>216
あなたの経験からすればそんなに入門は困難じゃない.
Ruby 使ったことがあるなら Array#map とか関数型の影響を受けた機能を知ってるハズ
(そうとは知らずに使ってたんだろうけど).
あと Ruby の Proc はまさに(関数型言語で言う)クロージャの特別な場合.
よく使う用例に特化してる分ちょっと弱い.
Cの関数ポインタとクロージャの決定的な違い,
すなわち「静的スコープ」とか「環境」とかについてゆっくり勉強するといい.
実装を解説してる文書を探すのもといいと思う.

型システムは,あんまり便利で驚くことうけあい.
特にパラメータ型多相(C++のテンプレートと似てる)と
OOPで言う「継承によるポリモルフィズム(部分型)」をうまく統合してるのが特徴.
Javaとか「なぜこんなに表現力がしょぼい?」って気がしてくる(最近変わりつつあるけど).
ただ,ヴァリアント型は構文のせいでよくこんがらがりやすいけどね...
(コンストラクタなのか型の名前なのか,あとtypeとdata)

Haskellはかなりラディカルな言語なんでCとかとはギャップが大きいけど,面白いことは色々あるよ.

237 名前:デフォルトの名無しさん mailto:sage [04/10/24 01:23:24]
sage忘れスマソ

238 名前:デフォルトの名無しさん mailto:sage [04/10/24 02:04:48]
なんかいろいろ勉強するっていうと堅苦しいんで、実際に入門ページとか見て
自分でコードしていきながら概念を掴んでいく方がいいと思うよ。で、大雑把
にわかってから、その辺をキーワードに調べていくといいと思う。
# っていう意味で「ゆっくり勉強」って書いたんだったらスマソ

漏れは Ruby を書いても割と関数型スタイルで書こうとしちゃうんだが、けっ
こう書けるし、 Ruby 知ってるなら抵抗感はそこまでないと思うな。

型について補足すると、このテの関数型言語には型推論という機能があって、
最低限自分が書きたいところだけ「これはこの型」っていうのを提示すれば後
はオーケー(別に型を敢えて指定する必要はない)、っていうところも、プログ
ラマの負担軽減って意味では重要だと思う。


Haskell はラディカルすぎるんで挫折するかもしれないから、 ML 系言語から
攻めて行った方がいいかと思う一方、あれくらいラディカルじゃないと関数型
言語の面白さが全部は伝わらないのかもという気もしていて、どっちを勧める
かは正直、悩むな。
漏れは京大の五十嵐先生の OCaml の講義録から興味を持ったクチなので、
Haskell がなんだかわからなかったら OCaml を勧めとくよ。モナドとか型ク
ラスとかいった小難しそうな(新しげな)のはなんにもない。そんかわり関数型
言語としては綺麗じゃない。


239 名前:デフォルトの名無しさん mailto:sage [04/10/25 08:31:29]
>>236
perlはmy変数(Cのローカル変数と同じスコープを持つ変数)を
無名関数の定義の時点で保存できる。でもグローバル変数は
当然上書きされてしまいます。これはクロージャというには
中途半端な代物なんでしょうか?

perl -e '&{&{sub{my $v=1;$f=sub{print $v};$v=2;$f}}}'
しかも無名関数を定義した後にも、それを上書き出来ちゃうし。

240 名前:デフォルトの名無しさん mailto:sage [04/10/25 08:47:01]
Erlang って全然話題にならないね。やっぱりみんな型付きマンセーなの?

241 名前:/= 236 mailto:sage [04/10/25 09:18:11]
>>239
それらの性質は問題ない。
グローバル変数が上書きされたときにクロージャ内のものまで
かわるのは普通だし(Schemeでもそう)、local変数がどうなるのかは意味付けの問題。

Haskellではそもそも上書きされたりしないからそういうことは考えなくていい。
# Perlでのlocal変数に当たるimplicit parameterというものがあって
# それを使うと上書きされたような挙動が実現できる。

242 名前:デフォルトの名無しさん mailto:sage [04/10/26 02:30:50]
>>238
そんなときはConcurrent Clean



243 名前:デフォルトの名無しさん mailto:sage [04/10/26 02:34:33]
>>236
> Ruby 使ったことがあるなら Array#map とか関数型の影響を受けた機能を知ってるハズ

SmalltalkのCollection#collect:の影響とも言われているな

244 名前:デフォルトの名無しさん mailto:sage [04/11/01 14:28:46]
だれかVALIDの言語仕様みられるところ知らない?

245 名前:デフォルトの名無しさん [04/11/28 00:08:44]
型推論のあるOO言語
boo.codehaus.org/Home

(www.rubyist.net/~matz/20041126.htmlより)
> 新言語。
> * Python文法
> * 静的型
> * 型推論
> * CLI上で動作


246 名前:デフォルトの名無しさん mailto:sage [04/11/28 13:28:36]
つかちゃんと型宣言した方が(・∀・)イイよ

247 名前:Aransk [04/12/13 19:15:16]
関数型言語IoがサーバーとVM,UI付きで発表されました!
ttp://www.iolanguage.com/Downloads/
IoDesktop-2004-12-06 vm + server addons + ui addons 20M
日本語ドキュメント:
ttp://f21.aaa.livedoor.jp/~kizz/prog/io/Docs_ja.html

純粋に関数型かどうかは別にして一応、
Io is small prototype-based programming language.
The ideas in Io are mostly inspired by Smalltalk
(all values are objects), Self, NewtonScript and Act1
(prototype-based differential inheritance, actors and
futures for concurrency), LISP (code is a runtime
inspectable/modifiable tree) and Lua (small, embeddable).
となっています。
ぱっと見、良さ気な言語に思えますが、
少なくともbooよりは…。

248 名前:Aransk [04/12/13 19:43:09]
Ioに興味なくても、この言語の製作者であるデコルテさんの
好きな言葉だけでも必見の価値があると思う。
ttp://www.dekorte.com/Quotes.html
良い言語を作りそうな感じがするでしょう?


249 名前:デフォルトの名無しさん mailto:sage [04/12/13 21:36:31]
ミニマルなプロトタイプベースのOO言語だな。
面白いと思うけどこのスレで扱う内容か?

それにしても非常に検索しづらそうな名前だと思うが……。


250 名前:デフォルトの名無しさん mailto:sage [04/12/14 13:22:13]
Aranskにマジレス禁止

251 名前:Aransk [04/12/14 16:05:05]
LISP (code is a runtime inspectable/modifiable tree)
Ioは一応Lispに影響されたとあります。また、イオってギリシャ語で
月を意味するそうです。Lunaに影響されたとあります。

では,関数型言語の総本山の話題です。
ttp://www.lisperati.com/
見られました?
GNU CLispはお奨めと書いてあります。
ttp://ciapek.uci.agh.edu.pl/~kwlodarc/VisualCLisp/en.htm
IDEツールもあるようです。

and of course it has a few bugs.
If you find one, please, let me know
(a fewとoneに味がある…)

and if you've got any informations about zionist
conspiracies, please, let me know

and if you've got any idea about how to solve
the middle-east conflict or war in Iraq, please, let me know

in other cases, please, don't let me know

VCLisp作者のこのコメントは笑えませんか?
>>250
don't let me know ってか?(藁)


252 名前:デフォルトの名無しさん mailto:sage [04/12/15 01:31:52]
関数型言語ってどこが一番嬉しいところなんだろう。副作用ないとこ?
抽象化が簡単にできるとこ?
クロージャ(無名関数でも可)がつくれるとこ?




253 名前:デフォルトの名無しさん mailto:sage [04/12/15 07:53:16]
言語のコミュニティに馬鹿が少ないとこ。

254 名前:デフォルトの名無しさん mailto:sage [04/12/15 11:18:58]
Aranskがいる

255 名前:Aransk [04/12/15 13:24:10]
関数型言語の良いところ:
マイナー感が適度にあるところ
言語エリート意識をくすぐるところ
仕事で使う必要がないところ
言語コニュニティー構成員の
世間的知名度の低いところ。
雑誌の記事や本には、ならない。
売れない、儲からない。
それでも関数型言語に拘るのは
馬鹿とまでは言いませんが
結構かすっている人々が多いと
思われ。PrologやAPLなんかよりは
まだましですが。今や過去の遺物と
なりつつあるCOBOLやCと比べても
かなり実用性には欠ける。
その点でRubyなんかのファンと
似た心情と考えております。
タイガーズファンとも…。



256 名前:デフォルトの名無しさん mailto:sage [04/12/15 13:28:00]
>>255
他の言語でも応用が効くんだよね。

257 名前:デフォルトの名無しさん mailto:sage [04/12/15 14:19:53]
池沼はスルー

258 名前:デフォルトの名無しさん mailto:sage [04/12/15 20:04:33]
Ioはスレ違い
関数型でもないし目指してるとこが違うだろ
つーか↓過疎スレなんだから盛り上げてやれよw

プロトタイプベース・オブジェクト指向
pc5.2ch.net/test/read.cgi/tech/1070886635/

259 名前:デフォルトの名無しさん mailto:sage [04/12/15 23:23:30]
>>256
つーことは、
他の言語にない概念を関数型言語から学べる、というのが一番嬉しい
ってことか。


260 名前:Aransk [04/12/16 13:52:29]
>>259
マイナー言語に嵌るタイプの人々を観察しながら
あぁだぁ、こうだぁ、と評論家的に語るのが
一番嬉しいってこと。これは関数型言語に
限らない。
つまりインドとか中国はまだそんな余裕がない。
JavaやC++なんかの稼げる言語で稼ぐのに
必死であり、マイナー言語なんかをトロトロ
やってる暇がないのです。
関数型言語は特に実用性に欠けるでしょう?
そこが成熟社会における魅力でもある訳です。
やっても世間的に意味のないことが
オタク心理をくすぐる訳なんです。
いってみれば閑散とした田舎の鈍行列車
ですって。
ttp://www.lisperati.com/
これなんかまさにLispの特徴を
うまく表現していると思うけどねぇ。
「だから、どうなの?」って言われると
困るところも含めて…。

261 名前:デフォルトの名無しさん mailto:sage [04/12/16 21:14:29]
>>260
学際的な視点からの意見は?

262 名前:デフォルトの名無しさん [04/12/17 04:51:08]
【計算機プログラムの構造と解釈】 P212

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

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



263 名前:デフォルトの名無しさん mailto:sage [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
ttp://www.shiro.dreamhost.com/scheme/trans/power-j.html
簡潔さは力なり---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:
ttp://sonic64.hp.infoseek.co.jp/2003-06-04.html
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 名前:デフォルトの名無しさん mailto:sage [04/12/17 18:48:41]
よろづに時といふは必らず見るべきものなり -- 樋口一葉

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

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

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




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

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


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

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



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

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

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

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

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

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




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

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

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

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

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

                         霊長類研究所

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



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

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

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

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

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

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

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

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

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

292 名前:デフォルトの名無しさん mailto:sage [05/02/02 15:26:08 ]
アナルスキー関連はこちらへ
超準関数型言語Aransk
pc5.2ch.net/test/read.cgi/tech/1082176723/



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


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

295 名前: ◆AnalSexRiQ mailto:sage [05/02/03 16:15:33 ]
Anarsk関連はこちらへ。以後スルーよろしく
超準関数型言語Aransk
pc5.2ch.net/test/read.cgi/tech/1082176723/

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

297 名前:デフォルトの名無しさん [2005/04/10(日) 15:39:32 ]
LLLLLLLLLLLLLLLLLLLLLLLLLLL
      A  .  I   .
LLLLLLLLLLLLLLLLLLLLLLLLLLL

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

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

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

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


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

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



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


304 名前:デフォルトの名無しさん mailto:sage [2005/05/03(火) 07:02:37 ]
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので

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

独習 Scheme 三週間
ttp://www.sampou.org/scheme/t-y-scheme/t-y-scheme.html
やさしい Haskell 入門
ttp://www.sampou.org/haskell/tutorial-j/index.html

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

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

若干宗教的偏執はあるが、
www.shiro.dreamhost.com/scheme/trans/icad-j.html
が面白い。下記は引用。

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

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

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


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

310 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 18:02:46 ]
>>309
Pythonは違う

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

312 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 20:56:16 ]
>>311
……………まあ、いいや。



313 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 01:19:04 ]
>>310
> Pythonはリストの内包表記といくつかの遅延評価メカニズムを備えているから
ttp://www.shiro.dreamhost.com/scheme/trans/IsPythonLisp-j.html

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


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


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

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

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

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

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

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


321 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 21:44:58 ]
A型とint型のペアからB型への関数型.

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


322 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 22:16:00 ]
あんがとう

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

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




323 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 23:03:58 ]
* って デカルト積 ?

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

325 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 06:08:09 ]
>>324
関数型CPUがないから、

326 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 08:44:35 ]
ある意味Lisp machine上のLispとか?

327 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 08:55:54 ]
OcamlのZINC VM
 pauillac.inria.fr/~xleroy/publi/ZINC.pdf


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

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

330 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 18:56:04 ]
抽象機械とVMは違う概念でしょうか

331 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:26:49 ]
>>330
>>330
>>330
>>330
>>330
>>330
>>330
>>330
>>330
>>330

332 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:28:58 ]
>>330
同じと思ってよい



333 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:35:04 ]
>>332 ?

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

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

336 名前:334 mailto:sage [2005/05/26(木) 21:37:23 ]
つか、単なる和訳じゃん。

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


338 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 22:13:46 ]
恥ずかしい>334がいるのはこのスレですか

339 名前:337=334 mailto:sage [2005/05/26(木) 22:25:34 ]
いみふめ

340 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 22:26:44 ]
>>338
おにいちゃん・・・はずかしい・・・

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

342 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 23:02:47 ]
おにいちゃん、必死過ぎ・・・



343 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 05:42:11 ]
結局>331は何を言いたかったん?

344 名前:デフォルトの名無しさん mailto:sage [2005/06/03(金) 08:24:26 ]
自己準同形と自己同形の違いが分らんですにゃ

345 名前:デフォルトの名無しさん [2005/07/29(金) 23:06:11 ]
初代1です
ごめんね

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

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

348 名前:デフォルトの名無しさん mailto:sage [2005/09/21(水) 13:35:42 ]
Pugs書いた天才を見習ってhaskell一ヶ月やってみたら?

349 名前:デフォルトの名無しさん mailto:sage [2005/09/21(水) 17:30:11 ]
>>346
まず「関数プログラミング」を買って読む。
ttp://www.kindaikagaku.co.jp/bookdata/ISBN4-7649-0181-1.htm

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


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

351 名前:デフォルトの名無しさん mailto:sage [2005/09/21(水) 22:42:20 ]
自分が頭がいいつもりになれるしね

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



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

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

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

355 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 01:22:55 ]
>>352
why functional programming matters
ttp://www.sampou.org/haskell/article/whyfp.html

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

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


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

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

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

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

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

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

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

361 名前:デフォルトの名無しさん mailto:sage [2005/09/25(日) 23:41:16 ]
>>360
web browser
ttp://pauillac.inria.fr/~furuse/jmmm/index.html

362 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 00:39:04 ]
System programming using FP
ttp://lambda-the-ultimate.org/node/view/943
そのキャッシュ
ttp://www.google.com/search?q=cache:lambda-the-ultimate.org/node/view/943+haskell+web-server&strip=1




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

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

365 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 07:12:22 ]
>>363
意味をどのレベルで求めるかに依るんじゃないかな。

ttp://pauillac.inria.fr/~furuse/jmmm/0418/faq-ja.html#caml

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

366 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 07:14:15 ]
>>364
何でそう思ったのかな。

367 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 08:04:12 ]
cleangl.sourceforge.net/
ゲームぐらいは作れるよ。

368 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 12:00:49 ]
ゲームなんかどの言語でも作れるけど?

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

370 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 18:01:28 ]
>>368
whiteで3D格闘ゲームよろ

371 名前:デフォルトの名無しさん [2005/09/26(月) 20:46:40 ]
>>360
MLでWebサーバ作成
pllab.jaist.ac.jp:8080/education/i217-2002/httpd.html

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



373 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 22:12:03 ]
はいはい何も出来ませんよ

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

375 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 22:36:58 ]
わざわざ馬鹿と断る意味ありませんよ

376 名前:デフォルトの名無しさん mailto:sage [2005/09/27(火) 00:39:43 ]
関数型言語の代わりになるC,C++もねーだろ

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

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

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


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

381 名前:デフォルトの名無しさん [2005/09/27(火) 18:49:27 ]
Aransk?

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



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

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

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

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

386 名前:デフォルトの名無しさん [2005/09/27(火) 23:24:29 ]
現実から目をそらすな

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

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

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




389 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 00:03:19 ]
と 10 年前も言われてたが Java が出た。

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

391 名前:デフォルトの名無しさん [2005/09/28(水) 00:09:33 ]
>>387
ヒント:統計

392 名前:デフォルトの名無しさん [2005/09/28(水) 01:28:20 ]
【研究】「実社会にも応用可」 "ジョルダンの曲線定理"、世界初の完全証明…信州大教授ら
news19.2ch.net/test/read.cgi/newsplus/1127835258/l50

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



393 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 07:57:21 ]
MLはCで書かれたプログラムです。

394 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 08:51:57 ]
何の事だ?

395 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 10:06:03 ]
マシン語最強ってことだろ

396 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 11:27:17 ]
最強論議は小学生まで。

397 名前:デフォルトの名無しさん mailto:sage [2005/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 名前:デフォルトの名無しさん [2005/09/28(水) 21:15:26 ]
>>397
君すごい。

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

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

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

399 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 21:57:24 ]
OCaml + Linuxでいいんじゃね?

400 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 22:12:08 ]
俺は小学生派

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

402 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 23:16:24 ]
純粋関数型以外は関数型言語ではないと思うので,
Haskell & Linux




403 名前:デフォルトの名無しさん [2005/09/29(木) 00:19:48 ]
迷うなー

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

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



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


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

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


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

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

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

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


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

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

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

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

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

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


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




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

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

415 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 00:35:46 ]
なんかいきなり賑わいだしたが、なんかあったの?

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

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

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

418 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 22:33:20 ]
仕事 == CGI 書き?

419 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 23:13:08 ]
自然言語処理です。

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

421 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 00:12:31 ]
人権擁護法案がとおっちゃいますよ。

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


小泉が人権擁護法案早期に提出 (05/9/29・国会答弁)
live14.2ch.net/test/read.cgi/liveplus/1127977257/

人権擁護法案ってどんなものなんだ?
blog.livedoor.jp/monster_00/archives/cat_847822.html

分かる!人権擁護法案(Flash)
www.geocities.jp/kaniku4/

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

422 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 06:18:24 ]
CPUが関数型ってどういうの?どんなインターフェイスなの?



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

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


425 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:03:31 ]
リスプマシーンあったじゃん。

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

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

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

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

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

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


429 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 00:42:28 ]
CPUっていうか
FPGAの設計に落とし込んだりできないだろうか。

430 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 02:09:02 ]
環境は?

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

432 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 02:29:19 ]
ttp://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Shiro 2005/09/30 の所
ttp://homepage3.nifty.com/mogami/diary/d0509.html#28t1

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



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

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

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


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

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


436 名前:428 [2005/10/06(木) 21:22:11 ]
ほほぅ。思いつきで言ってみたが、いいセンスしてるな。俺。

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


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

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


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

www.gigamonkeys.com/book/

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

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

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

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



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

444 名前:ハーピィ mailto:sage [2005/11/01(火) 22:23:52 ]
E・∇・ヨノシ <444ゲット♫

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


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

447 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 03:08:39 ]
>446
一応より特化したスレがあるが

関数型言語ML(SML, OCaml, etc.), Part 3
pc8.2ch.net/test/read.cgi/tech/1103606223/

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

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


449 名前:デフォルトの名無しさん mailto:sage [2005/11/15(火) 15:28:30 ]
String.iter

450 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 16:19:08 ]
何この差wwwww

sourceforge.net/softwaremap/trove_list.php?form_cat=160

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


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

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



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

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

www.research.microsoft.com/%7Esimonpj/papers/stm/index.htm
俺はこれの前半を読んだだけだから、変なことを言ってたら突っ込んでくれ。

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


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

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

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

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

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

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

461 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 22:33:11 ]

が違


462 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 22:58:34 ]
>>459
ユーザレベルスレッドでしか使えないのか



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

www.wings3d.com/

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

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

465 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 21:54:13 ]
いちおう聞くけどなぜ Haskell なの?

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

467 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 20:30:41 ]
国策ならRubyだろ

468 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 22:11:12 ]
>>467
  ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_
  \/    /
     ̄ ̄ ̄


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

469 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 13:39:24 ]
プログラマの地位向上を国策とすべきだ。

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

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

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

472 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 18:53:40 ]
つ【google】



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

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

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

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

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

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

477 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 23:45:47 ]
a href     "


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

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

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

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


480 名前:デフォルトの名無しさん [2006/02/13(月) 01:47:20 ]
>>479
広義の方はラムダ算法とか高階関数とかがごく普通に使われる言語、みたいな感じでいいと思うよ。
厳密の方はWikipedia によれば(ttp://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E9%80%8F%E9%81%8E%E6%80%A7)
どうもそうっぽい。宣言型言語とも呼ばれるみたいだね。

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

481 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 01:47:40 ]
www.cs.nott.ac.uk/~gmh/faq.html#functional-languages


482 名前:473 [2006/02/13(月) 01:48:39 ]
URL は
ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E9%80%8F%E9%81%8E%E6%80%A7
だね。閉じ括弧までURLと見なされる@xyzzy+2ch-mode



483 名前:デフォルトの名無しさん [2006/02/15(水) 04:54:07 ]
Mirrandaってどんなの?

484 名前:デフォルトの名無しさん [2006/02/15(水) 04:58:49 ]
Oberon と Mirranda はあるのに Titania は無いのか。

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

486 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 09:41:43 ]
言いだしっぺの法則発動

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

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

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

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

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

491 名前:デフォルトの名無しさん mailto:sage [2006/03/24(金) 23:07:56 ]
趣味の関数型コードを公開しないだけでは?

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



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

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


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

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

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

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


498 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 09:29:51 ]
>>497
無理ではない。

499 名前:デフォルトの名無しさん [2006/04/18(火) 14:40:09 ]
>>498
どうやるの?

500 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 15:57:49 ]
lamdaができれば遅延評価もできるんじゃね?

501 名前:497 mailto:sage [2006/04/19(水) 00:59:45 ]
ちょっと、説明がわるかったっすね。。

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

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



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

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

505 名前:デフォルトの名無しさん mailto:sage [2006/04/23(日) 10:06:23 ]
Erlangってつかてる人いる?

506 名前:デフォルトの名無しさん mailto:sage [2006/04/23(日) 13:59:55 ]
>504
そんなこといわないで、お・ね・が・い♥

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

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

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

508 名前:デフォルトの名無しさん [2006/04/28(金) 11:31:41 ]
早くそのコードを公開するんだ

509 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 02:03:00 ]
>>505
ノシ

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

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

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

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

512 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 14:21:56 ]
Parrotの魅力を語ってくれ



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

514 名前:デフォルトの名無しさん mailto:age [2006/07/30(日) 11:27:03 ]
保守age

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

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

517 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 20:04:30 ]
ラムダ計算はプログラムじゃないねぇ

518 名前:デフォルトの名無しさん mailto:age [2006/11/04(土) 22:23:23 ]
え? 違うんですか???

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

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

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

521 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 19:39:21 ]
>>520
関数を変数として扱えること

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



523 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 21:44:42 ]
>>521 でりげーとでいいやん

524 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 22:08:35 ]
第一級の値

525 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 22:12:41 ]
型理論!!!!!!!

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

527 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 22:17:21 ]
デリゲートの数学的モデルを教えてください

528 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 23:19:32 ]
Haskellは
型付ラムダ式に
いろいろ付け加えたものに
みえるけど。

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

529 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 23:21:55 ]
やぁ、伊藤君。

530 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 12:20:39 ]
誰?

531 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 13:45:08 ]
>>530
ググレカス

532 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 14:21:56 ]
で。誰?
www.google.co.jp/search?hl=ja&q=%E4%BC%8A%E8%97%A4+Haskell&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=




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

534 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 16:03:28 ]
LtU、度々同じ文句言ってるよなw

535 名前:デフォルトの名無しさん [2006/12/01(金) 10:25:30 ]
Erlangスレってここでよいでつか?

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

537 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 22:00:04 ]
erlangのことどう発音してる?
エアランク?
アーラン?

538 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 00:18:29 ]
アーラン。

539 名前:デフォルトの名無しさん [2006/12/02(土) 00:31:39 ]
あーらん

540 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 01:53:14 ]
ぇろぁん(鼻音で)

541 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 07:10:28 ]
ドイツ語だから、えあらんく

542 名前:デフォルトの名無しさん [2006/12/03(日) 17:51:57 ]
アッラーフアクバル



543 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 14:19:57 ]
あなあっへんばっく

544 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 01:16:57 ]
λ計算スレを情報学板に立ててみました.
science4.2ch.net/test/read.cgi/informatics/1165506353/


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


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

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

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

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

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

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

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

551 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 20:44:27 ]
>>550
Gaucheとか。

552 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 22:18:12 ]
>>550
俺も>>551に一票。
ホント自然に使えてかっこイイ。



553 名前:デフォルトの名無しさん [2007/03/26(月) 20:54:29 ]
あげ

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

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


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

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

557 名前:ワロタ mailto:sage [2007/04/09(月) 12:18:01 ]
これがオブ脳って奴か

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

558 名前:アホ mailto:sage [2007/04/09(月) 12:39:03 ]
虚無空間でのブーツ・ストラップみたいなもんだろ実際

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


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

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

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


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

562 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:53:34 ]
焼き豆腐ってLispやってたんじゃねぇ〜のか?
だらしねぇな



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

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

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

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

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

ないの?

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

567 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 13:16:31 ]
豆腐スレ
pc11.2ch.net/test/read.cgi/tech/1176033534/

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

569 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 19:14:35 ]
それは興味深いですね。

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

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


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

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


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

572 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:16:53 ]
>>571
はあ。それは良かったですね。



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

574 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:34:02 ]
無意味

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

576 名前:デフォルトの名無しさん [2007/04/09(月) 22:04:09 ]
なんという結論

さすがFランク

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

578 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:51:46 ]
またjargon fileの解釈論争みたいな塩梅だなあ

580 名前:flatline ◆r6EONKKhcc mailto:sage [2007/04/10(火) 02:04:09 ]
>>554
こんなのもありますよ
ttp://citeseer.csail.mit.edu/mcadams01practical.html
Y in Practical Programs

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

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

最近CiteSeerのミラーがどこもまともに機能してないなぁ...
こちらで っ[ ttp://citeseer.ist.psu.edu/mcadams01practical.html ]

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

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



583 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 07:33:46 ]
コンビネータ論理チュートリアル e.tir.jp/wiliki?%CB%DD%CC%F5%3A%A5%B3%A5%F3%A5%D3%A5%CD%A1%BC%A5%BF%CF%C0%CD%FD%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB

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

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

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

586 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:18:42 ]
で?

587 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:22:36 ]
いちいち反応すんなよw

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

589 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:16:07 ]
たぶんどっちもjargonだ

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

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


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

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

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



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

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

594 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 12:20:23 ]
まだ項書換系とか学部レベルの勉強してるのか。

595 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 12:37:48 ]
コンパイラ・スレの話題だな

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


597 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:59:59 ]
シュプリンガーの関数型言語作成本とか

598 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:04:29 ]
>>597
なんて名前本ですか?

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

600 名前:597 mailto:sage [2007/04/29(日) 00:11:45 ]
シュプリンガーじゃなくてプレンティスホールだったw

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

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



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

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

参考:
Pearson Education
ttp://www.pearsoned.com/index.htm
Pearson Prentice Hall
ttp://phcatalog.pearson.com/co_home.cfm?site_id=6

605 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:27:37 ]
>>596
citeseer.ist.psu.edu/332842.html
みたいな論文とかじゃね?

606 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:30:55 ]
>>597
www.etl.luc.edu/laufer/ftp/papers/functoids.ps.gz

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

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

609 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:52:11 ]
表紙が紅白の本だったっけ

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

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

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