現在ある言語の中でどれが最高?

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ええ、そうですよ。
宗教論争ですよ。
くだらないですよ。
無意味ですよ。
でもまあいいでしょ?
2デフォルトの名無しさん:2001/05/11(金) 00:28
HSP
3デフォルトの名無しさん:2001/05/11(金) 00:32
Perl
4デフォルトの名無しさん:2001/05/11(金) 00:34
国際語の英語。
5デフォルトの名無しさん:2001/05/11(金) 00:38
エスペラント語。
6o:2001/05/11(金) 00:45
tclかperlだろうな。
windowsだったらdelphi>>>>>visualc++だと思う。
7米国防総省:2001/05/11(金) 00:58
Ada に決まっとるだろ、Ada にっ!
8デフォルトの名無しさん:2001/05/11(金) 00:59
適材適所
9マシン語:2001/05/11(金) 01:11
どんな言語も最後はここへ回帰するんだよ。
10デフォルトの名無しさん:2001/05/11(金) 01:12
Lispに決まってる。マジレス。
11デフォルトの名無しさん:2001/05/11(金) 01:13
>>9
どんな人間も最後は死体になりますが
死体が人間として最高なわけありません。
12母国語:2001/05/11(金) 01:14
関西弁。誰とでも打ち解けやすいうえに感染する
13デフォルトの名無しさん:2001/05/11(金) 01:16
>>11
多くの宗教は魂みたいなのを仮定して死後を最高と言ってみるけどな
1411:2001/05/11(金) 01:26
>>13
どの宗教よ?
キリスト教は神の教えに背くと死後に地獄に逝くぞ
って脅してますよ。
15デフォルトの名無しさん:2001/05/11(金) 01:27
>>13
 じゃあ今すぐ死後の世界にいけ
16デフォルトの名無しさん:2001/05/11(金) 01:32
C++Builderだろ。
17デフォルトの名無しさん:2001/05/11(金) 01:33
オカルト宗教板逝け>>13-15
最近schemeが最高に見える。>1
処理系がへぼいと遅いけど。
18デフォルトの名無しさん:2001/05/11(金) 01:44
>>16
ネタ?
19デフォルトの名無しさん:2001/05/11(金) 01:47
>>18
いえいえ彼らは本気です。
信仰とはそういうもんです。
20デフォルトの名無しさん:2001/05/11(金) 02:14
Haskell>SML>Ocaml>Scheme>Lisp>>>>Ruby>C#>Ada
>>>>C++
21デフォルトの名無しさん:2001/05/11(金) 02:39
>>20
君は名医だ
22デフォルトの名無しさん:2001/05/11(金) 03:03
C++最高!
23デフォルトの名無しさん:2001/05/11(金) 03:08
コンパイラ、OS、ゲームソフト、デバイスドライバを
作れない言語は、最高にはなれない。
24デフォルトの名無しさん:2001/05/11(金) 03:22
最高デスカー?
25デフォルトの名無しさん:2001/05/11(金) 03:54
最高デスcar?
cdr!
26デフォルトの名無しさん:2001/05/11(金) 05:17
>>22
馬鹿

>>23
微妙

>>25
がんばれLisper
27デフォルトの名無しさん:2001/05/11(金) 05:42
DNMLが最高だよもん
28デフォルトの名無しさん :2001/05/11(金) 06:36
ここでVerilogなんて言ったら怒られますかね。
29デフォルトの名無しさん:2001/05/11(金) 08:53
やっぱりアセンブラだなー
30デフォルトの名無しさん:2001/05/11(金) 09:17
あせんぶらぁ〜
勉強したいが〜
書籍在庫切ればかり〜
31デフォルトの名無しさん:2001/05/11(金) 09:31
C#
32デフォルトの名無しさん:2001/05/11(金) 09:50
やっぱりDelphi、て書くとまたVB粘着がからんでくるので
やめとく。自分の好きなのが一番。
33sage:2001/05/11(金) 09:51
>>29
>>23意見からすると確かに同意。(w
CPUがみんなItaniumみたくなるなら、最高のEPICコンパイラは人間かもね。
34あなたのうしろに名無しさんが・・・:2001/05/11(金) 09:55
>>30
大きい書店か、古本屋へどうぞ。
35デフォルトの名無しさん:2001/05/11(金) 12:19
勝手ながらこのスレは以後、
「現在ある言語の中でどれが最高にきれいな言語か?」
に変えさせていただきます。
次回予告、
「現在ある言語の中でどれが最高に汚い言語か?」
3635:2001/05/11(金) 12:50
「現在ある言語の中でどれが最高にきれいな言語か?」
これにて終了。
37デフォルトの名無しさん:2001/05/11(金) 17:32
>>35-36
何をしたいの?
3835:2001/05/11(金) 18:28
っていうか、36は俺じゃないんだよね。
まぁ、嫌ならいいやって感じ。
39デフォルトの名無しさん:2001/05/11(金) 19:08
>>1-38
全員逝ってよし。
40デフォルトの名無しさん:2001/05/11(金) 19:11
最高を決めるのは難しいかもしれんが、カスを決めるのは簡単だ
41デフォルトの名無しさん:2001/05/11(金) 19:12
>>39
俺は?
42デフォルトの名無しさん:2001/05/11(金) 19:13
>>39
>>1-38の代表としていわせて貰います。

お前は逝ってよし。
43デフォルトの名無しさん:2001/05/11(金) 19:42
>>10
 Lispかぁ…、確かに否定できないところがありますが…
44デフォルトの名無しさん:2001/05/11(金) 19:47
10=43=Lisp信者
白々しいぞ。
45デフォルトの名無しさん:2001/05/11(金) 19:50
haskellだろ?
46デフォルトの名無しさん:2001/05/11(金) 20:03
Lisp系 v.s. ML系か。
こうなると思ったよ。
47デフォルトの名無しさん:2001/05/11(金) 22:17
独断と偏見でノミネート

Lisp系最強 -> Scheme (美しさと自由度の高さではNo.1)
ML系最強 -> Objective CAML (実装が優れてる)
FP系(?)最強 -> Heskell (HaskellはML系?)
OOP系最強 -> Eiffel (実装の完成度が高くなればSatherか?)

最強といったらやはりHaskellかな。
しかし、私はFORTRANプログラマー(涙)
48>>35:2001/05/11(金) 22:36
>次回予告、
>「現在ある言語の中でどれが最高に汚い言語か?」
VBとHSPの二大巨頭を凌ぐものがあるかどうか?
49デフォルトの名無しさん:2001/05/11(金) 23:09
>>47
Ocamlねぇ……
SMLのが優れてると思うのだがなぁ
50デフォルトの名無しさん:2001/05/11(金) 23:32
C++買おうと思ってるんだけど
Delphiのほうがいいの?
Delphiって上級者向け?
51ダザイ:2001/05/11(金) 23:44
てきとーに
COBOLとかいってみる
52デフォルトの名無しさん:2001/05/12(土) 00:03
>>50
C++買う?
VC++?
そんなもの買わないでg++使え。
53初期不良:2001/05/12(土) 00:50
なんか大学で moduler やらされそうなんですけど、
これってどうなの?
54デフォルトの名無しさん:2001/05/12(土) 01:05
>>53
Modulaのこと?
55デフォルトの名無しさん:2001/05/12(土) 01:10
>>51
確かにCOBOL処理系って最高(最も高い)
56デフォルトの名無しさん:2001/05/12(土) 01:27
どれが最高っていうと。
とりあえずオールマイティなところでC言語かな?
57デフォルトの名無しさん:2001/05/12(土) 01:31
>>56
このスレ初登場(笑
僕もCは結構いいかと。
でも最高じゃないな。
58デフォルトの名無しさん:2001/05/12(土) 03:28
HaskellとProlorgに似ているMercuryという言語も気になる。
59デフォルトの名無しさん:2001/05/12(土) 04:45
hspでしょ
60デフォルトの名無しさん:2001/05/12(土) 04:46
cls万歳
61デフォルトの名無しさん:2001/05/12(土) 06:56
このスレ読むとつくづく、優れたものが売れる、
人気を博すものではないなと思う。

両方とも兼ね備えたもので言えばJava, C#かな。
62デフォルトの名無しさん:2001/05/12(土) 07:19
アホが圧倒的に多いから、アホでも使える言語が売れるんだよ。
これが現実だよ。
63デフォルトの名無しさん:2001/05/12(土) 08:06
>>62
アホでも使える言語があるとしたらそれはそれで素晴らしいものだと思うぞ。
問題なのはMSがアホなことだと思うぞ。
64久保晶彦:2001/05/12(土) 08:47
もちろん、世界標準BASIC。
65デフォルトの名無しさん:2001/05/12(土) 08:49
>>64
本当に最高なんだな?
66久保晶彦:2001/05/12(土) 10:26
>>65
   / ̄ ̄ ̄ ̄ ̄ ミ
  /   ,――――-ミ
 /  /  /   \ |
 |  /   ,(・) (・) |
  (6       つ  |
  |      ___  |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |      /__/ /  < なわけねえだろ!
/|         /\   \__________
67デフォルトの名無しさん:2001/05/12(土) 12:05
>>63
MSに入れるのは相当の実力者か高学歴者。
少なくともお前よりは頭がいい。
68デフォルトの名無しさん:2001/05/12(土) 13:00
あほでも使える処理系を作ってあほプログラマ相手に商売するよりも、
あほでも使える処理系が不要になる世の中をみんなで作るべきだと思う。
69デフォルトの名無しさん:2001/05/12(土) 13:22
>>68
・あほが処理系を使おうとしなくなるような世の中ってこと?
・全てのあほをスキルアップさせてあほじゃなくするってこと?
70デフォルトの名無しさん:2001/05/12(土) 13:25
あほ差別スレ
71デフォルトの名無しさん:2001/05/12(土) 14:09
あほといったら坂田
72全国の坂田さんへ:2001/05/12(土) 14:24
坂田差別スレ発見しました!
73デフォルトの名無しさん:2001/05/12(土) 15:57
COBOL
74ムネヲ:2001/05/12(土) 16:09
ん?
75デフォルトの名無しさん:2001/05/12(土) 17:01
Javaだめすか・・・。僕はこれからはJavaだっ!なんて言って勉強してるんです
けど厨房すか・・・?やぱCとかがいいんすか?マジレスきぼんす
76中途半端くん:2001/05/12(土) 17:21
>>75
マジレス。

JAVA でもいいと思います。
C も当分の間はバリバリの現役でしょう。

でも、本当に大事なのは、3つ。

創造する心。 論理的な思考。 打算。
77デフォルトの名無しさん:2001/05/12(土) 18:47
http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html

「最高」かどうかはともかく、「最強」は Lisp という主張らしい。
78ラスプーチン:2001/05/12(土) 18:47
LoveViewはどうなの?
愛の景色だよ!愛の景色!
79デフォルトの名無しさん:2001/05/12(土) 18:54
ヽ( ´▽`)ノ (or lisp scheme)使ってると、他の言語がカスに見えるよ>77
80デフォルトの名無しさん:2001/05/12(土) 19:22
schemeは確かに面白いという意味では最強だと思うけど。
81デフォルトの名無しさん:2001/05/13(日) 06:53
Smalltalk-80 の VM みたいにウィンドウやら何やらが
(当然自己記述で)整備された Lisp 系言語+VMって何か
ないのかなあ。

昔から欲しいんだけど。
82デフォルトの名無しさん:2001/05/13(日) 09:37
>>81
schemeなら色々目撃しますよ、そーいうの
VMに直すってことはコンパイラがある処理系って事ですか?
tk使ったやつとか。
LISPは知りません。xyzzyとかは?
83デフォルトの名無しさん:2001/05/14(月) 00:14
lispが最高といってる人はhaskellやMLを知らない人だろ。
8475:2001/05/14(月) 10:12
>>76
うおーん、なんか安心しました、ありがとう
さあ勉強するぞ
85デフォルトの名無しさん:2001/05/14(月) 11:01
86PL/I:2001/05/14(月) 11:58
自称最強
Programming Language NO.1 !
87デフォルトの名無しさん:2001/05/14(月) 13:19
C++。
WinアプリならツールはVC++使う。
88デフォルトの名無しさん:2001/05/14(月) 14:20
>>81
SymbolicsのLispマシーンを何とかして手に入れなされ。
VMどころかLisp専用プロセッサだよ。

しかしMacIIfxに載せてた MacIvory(Macの拡張ボードとして動く
Lispマシン)の速度が、そのfx上のMac Common-Lisp に負けたのは
悲しかった。
89デフォルトの名無しさん:2001/05/14(月) 17:00
俺が最高。
90デフォルトの名無しさん:2001/05/14(月) 17:32
Lisp,scheme,haskell,MLのどれも知らないって人は答える権利ナス。
91デフォルトの名無しさん:2001/05/14(月) 19:51
Clean最強。
最強の関数型言語。
Winでゲームも作れる。
http://www.cs.kun.nl/~clean/
92デフォルトの名無しさん:2001/05/14(月) 20:02
言語の文法が良くてもライセンスやドキュメントや実装が
駄目だとなぁ。
93デフォルトの名無しさん:2001/05/15(火) 04:17
>91
>Winでゲームも作れる。
んなもんWndowsのインタフェースがあればどんな言語であれ作れるだろ。
94デフォルトの名無しさん:2001/05/15(火) 06:50
>>93
それが無い言語ばかりなんだよな。
95デフォルトの名無しさん:2001/05/15(火) 08:09
winでゲームがtくれるから最強なのか?
96デフォルトの名無しさん:2001/05/15(火) 08:16
Tくれるって強そうだ。
97無責任な名無しさん:2001/05/15(火) 08:36
>>95
明らかに から って意の表現じゃないけど
最強の理由の一端にゲームをいれること自体をなんだかなぁ…
と思ってしまうのはゲームに偏見があり過ぎなのでしょうか…
98デフォルトの名無しさん:2001/05/15(火) 09:04
ゲームが作れるぐらいだから色々できるんだろうなという想像はつく
99名無しのアルゴリズム:2001/05/15(火) 16:45
本音と書いてマジレス
誰がなんと言おうと現在ある言語の中で最高なのは
「竜++」だろ?
100デフォルトの名無しさん:2001/05/15(火) 18:44
>>91
ライブラリの実装は充実していますね。実用度では、Haskellの
上をいくかもしれない。だけどproprietaryな言語が生き残れる
のかな。Mirrandaの二の舞になりそうな気がする。
101デフォルトの名無しさん:2001/05/15(火) 22:18
AoE RoR を作ることが出来る言語が最高。
他は存在価値が無い。
やっぱりgcの無い言語が良いでしょうか。
ちゃんと変数のスコープとかを取り決めれば必要ないですよね?
変数を持ち回る様であれば、それの破棄はユーザーに委ねると。
gcがあるとbytecodeやnativeに変換しても、gcのロジックだけは
残ってしまう様で・・。
103デフォルトの名無しさん:2001/05/15(火) 23:32
Objective-C なんかいいですね。最近、アイマックとオーエステンと
シュミでいじってるんですが、よくできてますよ。
生産性はC++よりも良いとおもいますよ(Pure.
こうしてボクチンはマカーになっていくのであった。
104デフォルトの名無しさん:2001/05/15(火) 23:55
>>101
で、AoE RoRはどの言語で書かれてるの?
どーせ知らないんでしょ。
105デフォルトの名無しさん:2001/05/16(水) 00:04
VC++に決まってんじゃん
適当なバイナリエディタで開いてみ
106デフォルトの名無しさん:2001/05/16(水) 01:39
〜を作ることができる言語が最強という言い方は気になる。
なぜなら、それは言語の責任じゃなくて、開発環境の
実装の責任だから。
107デフォルトの名無しさん:2001/05/16(水) 01:55
>>106
そうか?
俺は例え最速だったとしても、BASICでAOEを作ろうとは思わないだろうな。
108デフォルトの名無しさん:2001/05/16(水) 01:59
そういう考えだと、処理スピードも実装の責任かな?>106
高階関数や無名関数が書けるとか、OOPができるとか、
言語の機能で差別化するの?
109デフォルトの名無しさん:2001/05/16(水) 02:11
>>107
だから106はそういう発想なんだが。
>>108
まあ、確かに実装のしやすさとかパフォーマンスの
良し悪しに文法が関わってくることもある。
そういうことなら納得できる。
110デフォルトの名無しさん:2001/05/16(水) 03:17
HaskellとかMLとかで書かれたアプリって何でしょうか?
言語が優れていても、実務で使えない(使われていない)言語なら、
設計者のマスターベーションでしかないと思うのですが。

あと、最強/最高って言ってるけど、
オールラウンダーとして最高って意味でしょうか?
111デフォルトの名無しさん:2001/05/16(水) 12:39
112デフォルトの名無しさん:2001/05/16(水) 12:45
>>110
MLやHaskellはPlan 9みたいなもんでしょ。
113デフォルトの名無しさん:2001/05/16(水) 12:47
最強は汚くても馬力がある言語。
最高はきれいで結構使える言語。

とりあえず最強はC++かな。
114デフォルトの名無しさん:2001/05/16(水) 13:40
最強はPerl
最高はJava
115デフォルトの名無しさん:2001/05/16(水) 17:44
C++に最強に馬力があるんなら、なんでLISPに開発効率で負けるんだ…
116デフォルトの名無しさん:2001/05/16(水) 21:09
>>115
負けてないよ。
117113:2001/05/16(水) 22:15
>>115
http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
これでも読んだのか?
別にこういうのはケースバイケースだと思うぞ。
118デフォルトの名無しさん:2001/05/16(水) 22:34
おれDelphi使いだけど
>>117の文章には感銘を受けるね。
119デフォルトの名無しさん:2001/05/16(水) 22:47
>>101
それって DirectXとかも整備されてないと無理では?
120デフォルトの名無しさん:2001/05/16(水) 22:52
AoEって?
RoRって?
121デフォルトの名無しさん:2001/05/16(水) 23:05
Anal of Earth
Rm on Root
122デフォルトの名無しさん:2001/05/17(木) 00:09
>>110
研究では使われてるらしい。
123久保晶彦:2001/05/18(金) 21:26
やっぱBASIC取り消し。
ギコBASICがいいぞ>おーる
124デフォルトの名無しさん:2001/05/18(金) 21:47
schemeで決まり
125lambdaさん:2001/05/19(土) 01:50
lisp系のカッコお化け、萎えるなー。
カッコは3重以上ネストしちゃイカンよー。
4重5重もあたりまえの世界だなんて。。。
126デフォルトの名無しさん:2001/05/19(土) 02:42
でもあのカッコが無いと、強力なマクロが出来ないらしい。
プログラム自体がリストになってて、リストをいじる感覚で
プログラム本体をいじれるわけよ。カッコのおかげでね。
127lambdaさん:2001/05/19(土) 02:46
なるほど。>>126
128デフォルトの名無しさん:2001/05/19(土) 02:49
Lisp系ほど構文が単純なのはないような。
129デフォルトの名無しさん:2001/05/19(土) 02:52
Lispはシンプルで美しいのは認めても、
それで仕事をする気になれません。
130デフォルトの名無しさん:2001/05/19(土) 02:55
>>129
自分の仕事にどの言語を使うか選択できる権限があるの?
うらやましいなぁ。

http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
一応。
131デフォルトの名無しさん:2001/05/19(土) 02:59
>>128
そうか?結局はif文もあるし、switchみたいなcondって文もある。
doもあるし、C系と比べて実質的には全然単純じゃないぞ。
確かに「構文」には入らないかもしれないけど。
132デフォルトの名無しさん:2001/05/19(土) 03:01
133デフォルトの名無しさん:2001/05/19(土) 03:01
マクロって参照を使える言語での関数定義とほとんど同じようなもんだろ?
Cの関数定義では、絶対に同等のことが出来ないようなマクロって
例えばどんなやつ?
134128:2001/05/19(土) 03:07
>>131
実はあまりLisp知らないのだが
Cとかだと
1+2って形とhoge(n)って形なのが
Lispだと
(+ 1 2)や(hoge n)
そのへんが好き。
中置演算子ってものが嫌い(笑
135デフォルトの名無しさん:2001/05/19(土) 03:09
>>133
>マクロって参照を使える言語での関数定義とほとんど同じようなもんだろ?
違うだろ。
136デフォルトの名無しさん:2001/05/19(土) 03:17
137デフォルトの名無しさん:2001/05/19(土) 03:20
>>133
関数の引数に「プログラム」なるものを直接渡せるなら
その通りかもね。
138デフォルトの名無しさん:2001/05/19(土) 03:35
>>137
C言語なら関数ポインタを渡すっていう手がありますね。
関数も一応型をもったオブジェクトとして扱えなくもないです。
139デフォルトの名無しさん:2001/05/19(土) 04:06
せめてCやC++でも高階関数や無名が使えればなあ。
そんなに無茶なことでもないと思うけど・・。
list_t map(int (*proc)(pair_t), list_t lis ...) {
 map1(list_t lis) {
  if (nullp(lis))
   return nil;
  return cons(proc(car(lis)), map1(cdr(lis)))
 }
 maps() { 〜map1(car(lis))〜}
}
test(void) {
 list_t r = map(lambda(pair_t p){ 〜 });
 display(r);
 delete r;
}
140デフォルトの名無しさん:2001/05/19(土) 04:13
>>134
パーサも楽だし、前置や後置ってのはいいと思うんだ。
Lisp、Scheme について言えば、ループをやたら再帰で表現するのが嫌だ。
さらに用いる変数を増やしてまで末尾再帰にするところが。
141デフォルトの名無しさん:2001/05/19(土) 04:20
だからlisp/scheme関係はこっちで続けてね>>137-140
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987169286&ls=50
#それにしても・・荒れてますね(w
142デフォルトの名無しさん:2001/05/19(土) 04:43
>>140
>変数を増やしてまで
これがどういう意味かわからないけど、
(let loop ()
 (loop))
って末尾再帰も書けるよ
143デフォルトの名無しさん:2001/05/19(土) 04:51
Eiffel
144デフォルトの名無しさん:2001/05/20(日) 03:24
Dylan
145デフォルトの名無しさん:2001/05/20(日) 07:56
どこがいいのか説明してみい!>>143-144
146デフォルトの名無しさん:2001/05/20(日) 10:11
>>145
たぶん、どっかの厨房がカッコつけて自分の知ってる名前を挙げただけだろ。
147140:2001/05/20(日) 19:26
>>142
累算変数のこと。
148名無し:2001/05/23(水) 20:58
用途にもよるけど、VisualC++
149C + + 最 強:2001/05/23(水) 22:39
無敵です。
150C + + 最 悪:2001/05/23(水) 23:10
無謀です。
151デフォルトの名無しさん:2001/05/23(水) 23:43
>>150
うむ、素人は使用禁止だ。
152デフォルトの名無しさん:2001/05/25(金) 16:22
オールマシン語は男のロマンです。
153デフォルトの名無しさん:2001/05/25(金) 17:34
やっぱ C でしょ。好き好き大好き!
154結論:2001/05/26(土) 08:19
Scheme最高!
155デフォルトの名無しさん:2001/05/26(土) 10:46
>>152
おうともさ!Z80アセンブラは世界一!
C3C3hは例外フック置き場!
156デフォルトの名無しさん:2001/05/26(土) 11:14
アクションスクリプト☆
157デフォルトの名無しさん :2001/05/26(土) 15:24
ハングルが最高です。
韓国エステのアガシより。
158岡崎キョウコ:2001/05/26(土) 19:33
>>153 やっぱC++じゃん?
好き好き大嫌い!
159デフォルトの名無しさん:2001/05/26(土) 20:12
68000
160デフォルトの名無しさん:2001/05/26(土) 21:00
>>159
言語なのかよ
161デフォルトの名無しさん:2001/05/26(土) 21:11
MSX BASIC
162ななし:2001/05/26(土) 23:16
>>160
>155 を受けて68系アセンブラを言っていると思われる。
俺もアセンブラやるならせめて68系がいい。
163デフォルトの名無しさん:2001/05/26(土) 23:20
SHは?
164デフォルトの名無しさん:2001/05/26(土) 23:24
人類がコンピュータというバベルの塔を初めて手に入れた時から、
言語の違いによる宗教戦争は始まったのだよ。
165デフォルトの名無しさん:2001/05/26(土) 23:36
Schemeに一票。
166デフォルトの名無しさん:2001/05/27(日) 14:08
最高かどうかを客観的に決定出来る要因って何?

言語仕様は最高でも処理系の実装が
しょぼければ仕方ないと思うが?
167デフォルトの名無しさん:2001/05/28(月) 07:50
R3000 はレジスタ沢山あって楽しいよ(嘘
168デフォルトの名無しさん:2001/05/28(月) 10:24
>>164
ばk(以下略)
169デフォルトの名無しさん:2001/05/29(火) 00:15
 
170m4芯で:2001/05/29(火) 12:54
最低なら言える。
sendmail.confという言語(藁
autoconf(わしm4が嫌いなんだな)
171デフォルトの名無しさん:2001/05/29(火) 13:14
C++でしょ。現状、C++を以上の言語はない。
172デフォルトの名無しさん:2001/05/29(火) 13:27
>>171
Scheme, Haskell, MLなどの言語を使ったことある?
173デフォルトの名無しさん:2001/05/29(火) 13:31
>>171
うんうん、
C++ヲイジョウの言語はないですな。

ヲイジョウって何?
174デフォルトの名無しさん:2001/05/29(火) 13:39
>>173
miswritten
175デフォルトの名無しさん:2001/05/29(火) 14:42
今んとこC++かな。
慣れってのもあるけど。
176デフォルトの名無しさん:2001/05/29(火) 17:27
>>172
激しく同意。
ついでにRubyも追加。
177デフォルトの名無しさん:2001/05/29(火) 19:05
最低の言語っていうんなら同意なんだが。
178デフォルトの名無しさん:2001/05/29(火) 23:40
C++はCよりははるかに上だから最低ではない。
179デフォルトの名無しさん:2001/05/30(水) 06:52
>>145-146
Eiffelのいいところ?
Delphiのような MS-Windows用のコンパイラがある。
速い。
静的型付け 動的束縛 静的リンク
コンパイラは
オーバライドされてないメソッドはinlineに
オーバライドされたメソッドはvirtualにする。
継承はpublic継承のみ。
多重継承ができる(同じクラスを複数継承できる)。
総称がある。
演算子オーバーロードができる(演算子フィーチャーという)。
friendに似た?exportというものがある。
オーバーロードができない(Eiffelには必要ない)。
クラス変数がない(なくてもいいと思うけど、あるといいな)。
列挙型がない。
クラスをprimitiveにできる(expandクラスという)
Foo a ... a :expand Foo
Foo* a ... a :Foo
ガーベージコレクタがある。
表明がある。
SCOOPというスレッド機構がある。
動的リンクができる(EDL)。
他言語へのインタフェースがある。
180デフォルトの名無しさん:2001/05/30(水) 07:59
>>170
ふつー m4 に食わせるソースは *.mc で、作成した設定ファイルは
sendmail.cf だと思う。sendmail.conf ってのは初めて聞いたよ。
181デフォルトの名無しさん:2001/05/30(水) 11:05
VMさえ信用できるものであれば、Javaが最強なんじゃないか?
と最近思えるようになってきた。病気かな?
182デフォルトの名無しさん:2001/05/30(水) 13:19
>>181
最高じゃなく最強か…。
だったら間違ってはないと思うよ。
183(=゚ω゚):2001/05/30(水) 14:04
Lua もいいとおもうょぅ
184デフォルトの名無しさん:2001/05/31(木) 10:40
SQL #値段は最高…かな?
185デフォルトの名無しさん:2001/05/31(木) 16:48
JavaはSunの囲い込みで学術的な香りがない。
面白みが無い。
186デフォルトの名無しさん:2001/05/31(木) 16:52
>>185
もう少し詳しい説明をきぼーん。
187デフォルトの名無しさん:2001/05/31(木) 17:12
>>185
確かに言語自体には学術的な香りはないが、
VMまわりとか、Javaを使った研究とかだと結構あるよ。
188デフォルトの名無しさん:2001/05/31(木) 22:43
age
189デフォルトの名無しさん:2001/05/31(木) 23:36
>>179
>速い。
って、何かと比べてってことだよね?
何と比べて?
190デフォルトの名無しさん:2001/05/31(木) 23:38
>>179

メンバメソッド名やメンバ変数名のリネーミングができるでしょう。
サブクラスがスーパークラスのメンバの名前を変更して重複を避ける機能。
これC++に欲しいなぁ。

んでやっぱC++最強。高い自由度と高いパフォーマンスを両立し、
そこそこ高い安全性を備え、現時点で最も使える。
Kylixを使いたいけど、ObjectPascalなんて貧弱な言語使いたくないよ〜。
はやくC++版出ろ。
191デフォルトの名無しさん:2001/05/31(木) 23:46
Builderじゃいかんの>190
192デフォルトの名無しさん:2001/05/31(木) 23:58
最高の言語なんて、存在しない。
あるのは、最高の環境のみ。
自分が使いたい言語を全てコンパイル(アセンブル)でき、
必要に応じて、それらをリンク&デバッグできる環境が
自分にとっての、最高の環境。
どんなに使える言語でも、一長一短、ありますからね…。(^^;
193192:2001/05/31(木) 23:59
もちろん、そんなものは、存在しませんが…。
194192:2001/06/01(金) 00:00
今の所は。
195デフォルトの名無しさん:2001/06/01(金) 00:09
C++が最強なのって、パフォーマンスとか、VCとかがWindows
に調和してる点とか知名度でしょ。
LispやMLを知ってると、C++は言語的には本当に糞に思えるよ。
196デフォルトの名無しさん:2001/06/01(金) 00:32
C++は言語構造は複雑だし、オブジェクト指向言語としても完全ではなく、
安全性もそこそこでしかない。
しかし全体の平均レベルは高い。まぁ悪く言えば、妥協点がうまい。
スキルの高い人がメンバーにいれば間違いなく最強の言語になるものの、
誰も使いこなせないとボロボロになる諸刃の言語。

Javaは言語構造は比較的シンプルだけどLispに比べたら複雑すぎるし、
パフォーマンスも悪く、タイミングクリティカルな業務に向かない。
安全性は言われているほど高くなく、C++よりマシな程度で、
厨房開発者しかいない職場ではメチャクチャなコードが氾濫している。

Lispはコンパイラの作りやすさや感覚的な美しさがあるけど、
ある程度の知恵を持つ人じゃないと使いこなしにくい。
メンテナンス性が悪く、大規模な開発にむいてない。
実用性には大きな疑問が残る。

C言語はパフォーマンスが高く習得も容易だけど、
安全度が致命的なくらい低く、規模が大きくなりすぎると破綻しやすい。
いい言語だけど、オブジェクト指向普及の弊害になるので早く消えるべき。
197デフォルトの名無しさん:2001/06/01(金) 00:43
>>195
Lispの良さはコンピューターやコンパイラのためのものであって、
人間のためのものではない感じがするんだよね。
198デフォルトの名無しさん:2001/06/01(金) 01:01
>>189
何かと比べてというよりC++やDelphiのように実用的な速さという意味です。
>>190
>メンバメソッド名やメンバ変数名のリネーミングができるでしょう。
>サブクラスがスーパークラスのメンバの名前を変更して重複を避ける機能。
>これC++に欲しいなぁ。
そう思います。それと
>コンパイラは
>オーバライドされてないメソッドはinlineに
>オーバライドされたメソッドはvirtualにする。
があると、もっといいなと思います。
Eiffelコンパイラってかしこい。
C++でも可能だとおもんだけど・・・
199デフォルトの名無しさん:2001/06/01(金) 01:10
日本語・・・

きれいな言語じゃぁ〜
200デフォルトの名無しさん:2001/06/01(金) 01:19
自然言語できれいなのはLatinが定説らしいが、
あえて日本語をあげた理由を述べよ。>>199
201デフォルトの名無しさん:2001/06/01(金) 01:24
母/子音が少ない>200
(最もではないけど)
202デフォルトの名無しさん:2001/06/01(金) 01:43
>>200
まず 「ひらがな」 がいい!
おれはひらがな好きさ。
以下考え中・・・
203198:2001/06/01(金) 01:44
C++でも可能だと思うんだけど・・・
204デフォルトの名無しさん:2001/06/01(金) 01:45
>>196
多層型も高階関数もクロージャもラムダ抽象も無いC++が最強?
冗談もほどほどにしてくれ。
205デフォルトの名無しさん:2001/06/01(金) 02:21
↓こんなこと言ってるLisp狂信者たちがC++を認めるわけが無いよな。
http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
まさしく宗教論争だな。
206デフォルトの名無しさん:2001/06/01(金) 02:26
>>204
どれも必須とは思えないが??
これらが必須なのはlispだからだろ?
207206:2001/06/01(金) 02:27
>>204
lispにはtemplateはあるのか? と聞いているのと同じだぜ。。。
208デフォルトの名無しさん:2001/06/01(金) 02:29
多層型ってなんですか?>204
(検索しても関係なさそうなのが沢山引っかかる)
209ななし:2001/06/01(金) 02:30
>>197
「人間のためのものではない感じ」
その通りだと思うよ。フリーのLisp系言語はものすごく多いん
だけど、暇な学生が手軽に作れるからね。構造は単純だから。
でも、人間との意志疎通というか、ユーザーインターフェイス
をあまり考えてないよ。
210デフォルトの名無しさん:2001/06/01(金) 02:30
lispにはtemplate以上のモノがあると思うけど>207
211206:2001/06/01(金) 02:35
>>210
それはtemplateの実力を甘く見ている。
templateがすごいというよりは、どちらもそれなりってだけだけどな。
212デフォルトの名無しさん:2001/06/01(金) 02:36
ユーザーインターフェイスってなんの事ですか?>209
インタプリタ?
213ななし:2001/06/01(金) 02:47
>>212
いや、悪い。プログラマを「ユーザー」として見たときの、
理解しやすさと言うか、そんなもの。機械語が最低だけど。
その性質のため、Lisp系が今後もっと脚光をあびることなんてないよ。
数学とかと違って、コンピュータの世界では重要なんだな、それが。
214デフォルトの名無しさん:2001/06/01(金) 04:02
>>208
多相型でしょうかねぇ。
でもそれはC++にもあるような気がしますねぇ。
C++のそれとは違うものなのでしょうかねぇ。
215デフォルトの名無しさん:2001/06/01(金) 09:29
C++は所詮動的にコードを作れない。Lispはまがりなりも作れる。
動的なコード生成があるととてつもない生産性を得られることがある。
つうわけでperl最強と。
216デフォルトの名無しさん:2001/06/01(金) 10:40
>>211
lispのように基本的に(導入しようとしない限り)型の無い言語は
テンプレートが初めから基本的に使われているのと一緒だよ。
217デフォルトの名無しさん:2001/06/01(金) 13:16
>>216
同じじゃないよ。
テンプレートは汎用性と厳密な型安全を高いレベルで両立している。
形無し言語のそれは、型安全がごっそり抜け落ちている。
218デフォルトの名無しさん:2001/06/01(金) 15:02
>>217
でも汎用性はテンプレートより上。
あと、LISPは動的ながらも型ありに出来るし、MLやHaskellは静的に
強く型付けされた言語だから完全にC++のテンプレートより上。
219デフォルトの名無しさん:2001/06/01(金) 16:39
> 形無し言語
型無し言語じゃねえっての! ヴォケ氏ね。
220デフォルトの名無しさん:2001/06/01(金) 16:40
でもLISPは静的な型ではない。
221デフォルトの名無しさん:2001/06/01(金) 16:53
順調に宗教論争っぽくなってきました。
222デフォルトの名無しさん:2001/06/01(金) 19:10
>>218
>でも汎用性はテンプレートより上。
これについてもう少し詳しく(理由を)聞きたいです。
223デフォルトの名無しさん:2001/06/01(金) 21:18
>>213
理解できないのは単にキミの考えが浅いからだよ(w
それか、使いもしないでびびってるとかね。
メジャーにならないってのは同意するけど。
224デフォルトの名無しさん:2001/06/01(金) 22:37
結局どーなのよ
225デフォルトの名無しさん:2001/06/01(金) 22:53
>>218
Composite構造の汎用コンテナクラスがあったとして、
どんな型でも登録できるとするよね。

そして動物は自分の子供をこのコンテナに格納するとする。

さて、犬が持っている犬用のコンテナに
猫を登録してしまうことができないように、
猫が持っている猫用のコンテナに
犬を登録してしまうことができないように
制限するには、lispではどうするのでしょう?

なおこのコンテナはあくまで汎用的なコンテナで、
サードパーティから市販されている変更不可能なライブラリを使っているものとします。
226デフォルトの名無しさん:2001/06/01(金) 23:05
VBだよ俺は日常生活もBASICで考えてるもん
227デフォルトの名無しさん:2001/06/02(土) 00:29
>225
>犬が持っている犬用のコンテナに
>サードパーティから市販されている変更不可能なライブラリ

この2つの意味がよくわからないけど、
こんな感じでいいですか?ちなみにこれはschemeです。
(コンポジットになってないけど、想像してください)

#lispでの実装は218が書いてね。

(define (動物創造 type)
  (let ((腹 '()))
    (lambda (行動)
      (case 行動
        ((子作り) (動物創造 type))
        ((腹の状態) (display 腹) (newline))
        ((食事)
          (lambda (p)
            (if (and (pair? p)
                     (eq? type (car p)) )
                (set! 腹 (cons p 腹))
                (error "食べられません" p)))
        )
        (else (error "そんな行動できません" 行動))
      ))
  ))
228デフォルトの名無しさん:2001/06/02(土) 00:30
;テスト
(define 犬1 (動物創造 '犬))
=>犬1
((犬1 '食事) '(犬 bone))
=>ok
((犬1 '食事) '(犬 food))
=>ok
(define 犬1の子供 (犬1 '子作り))
=>犬1の子供
((犬1の子供 '食事) '(犬 food))
=>ok
((犬1の子供 '食事) '(猫 food))
=>error : 食べられません (猫 food)

(犬1 '腹の状態)
=>((犬 bone) (犬 food))
(犬1の子供 '腹の状態)
=>((犬 food))
229227:2001/06/02(土) 00:37
Lisp schemeスレに書けば良かった・・
ちなみにわたしは>>218ではありません。
230デフォルトの名無しさん:2001/06/02(土) 00:48
>>222
テンプレートの場合は、一定の形で使わないといけないだろ?
LispやMLなどの場合、やろうと思ったらどこでも変数の型を
<class T>のTに出来るといったらわかりやすいかな。
231226:2001/06/02(土) 00:55
>>227
お、そうきたか。
型安全なコンテナをどう実現するかを見たかったんだけど、
コンテナを隠蔽して、コンテナに届く前に振るいにかけたんだね。
突っ込みたいところはあるけど、設問は満たしているから俺の負けとする。

>>230
一定の形で使えるのがいいんだよ。
膨大な量のコードの間違いをチェックすのが楽になるから。

lisp系の言語は、プログラマーが完全な人間であることを求められる。
>>227のような、型チェックのコードも抜かりなく入れないといけない。
C++系の言語は、プログラマーは不完全な人間だという前提がある。
制約があるから負けているのではなく、制約を課すことができるメリットがあるんだよ。
232デフォルトの名無しさん:2001/06/02(土) 01:03
Lispばかり話題になって、MLとかHaskellとかOcamlが静的な
型があることを忘れないでくれ。
233デフォルトの名無しさん:2001/06/02(土) 01:05
>>231
>一定の形で使えるのがいいんだよ。
>膨大な量のコードの間違いをチェックすのが楽になるから。

でも柔軟性は無くなる。
それに、いっちゃなんだが、テンプレートよりもそれが無い
言語の方がすっきりしていてかえってチェックが容易。
234デフォルトの名無しさん:2001/06/02(土) 01:10
>>233

>>227のコードを見る限り、
とてもチェックが容易とは思えないんだけど……。
235デフォルトの名無しさん:2001/06/02(土) 01:11
>>234
それは最初の印象だけ。
236デフォルトの名無しさん:2001/06/02(土) 04:01
>>230 >>233
MLでもファンクタやシグネチャ使ってC++のテンプレみたいな使い方もできるよ。
237デフォルトの名無しさん:2001/06/02(土) 05:20
>>236
あれは型演繹するから、普通に全てがテンプレートみたいなものだよ。

ストラクチャはテンプレートというかむしろクラス。
シグネチャ使うのは特定のテンプレートに使う型を必要に応じて
一部に限定できるようなものかな。
238デフォルトの名無しさん:2001/06/02(土) 06:05
>>237
ファンクタはテンプレートっぽいぞ。
239デフォルトの名無しさん:2001/06/02(土) 07:20
ていうか、ファンクタ使うまでも無くデフォルトの型システムが
テンプレートの代用になる。
240デフォルトの名無しさん:2001/06/02(土) 18:49
つーか、「コンパイル」って解析段階があるから、
型チェックできるわけでしょ?
インタプリタとして同じ土俵に立ったら似たようなもんだと思うけど。
241デフォルトの名無しさん:2001/06/02(土) 19:06
ケースバイケースなのは確かですが
ポインタを使った複雑なデータ構造が必要な場合
lisp,プロローグは使えませんよね。
だから、プログラムの本質が計算の場合は、Javaだと思います。
Javaを使えば、さまざまなアプローチで開発する事ができ、
C++よりも、極端にはやく完成させられます。
プロローグやリスプを使うと、JAVAを使うよりも、
非常に簡潔に記述できるケースがたくさんあります。
しかし、JAVAにできて、lisp,prolorgにできない事が存在する以上
(問題解決という意味ではなく、コンピューターの動作の定義)
JAVAを好んで使ってしまうのは仕方ないと思いまます。
242デフォルトの名無しさん:2001/06/02(土) 19:16
HORON
243デフォルトの名無しさん:2001/06/02(土) 19:18
ATL
244確かに無意味:2001/06/02(土) 19:19
LDAP
245デフォルトの名無しさん:2001/06/02(土) 20:06
>>241
詳しい説明を希望。
パフォーマンスや静的動的の違いさえ除けば、lispに出来ないことは何も
ないという印象だから。ちょっと信じられない。
例えば、具体的にどういうコードが書けないの?
サンプルプログラムきぼーん
246デフォルトの名無しさん:2001/06/02(土) 20:14
>>241
eqとかの同一性テストプリミティブの立場は・・?
247デフォルトの名無しさん:2001/06/02(土) 20:16
Javaの方が曖昧な部分があってキモイけど>241
248デフォルトの名無しさん:2001/06/02(土) 20:17
>>241
prolorgじゃなくてprologだよう。
それと確かにprologはプロローグって単語だが
言語のほうはプロログって発音するほうが普通かと。
249デフォルトの名無しさん:2001/06/02(土) 20:20
MLはすごいよ。型そのものが抽象データ型なんだよ。
データ構造を扱うのにうってつけ。
250デフォルトの名無しさん:2001/06/02(土) 20:27
>>241はJava覚えたてのドキュン
251デフォルトの名無しさん:2001/06/02(土) 20:30
>>241
そもそもLispとProlog使ったことあるのか?
252デフォルトの名無しさん:2001/06/02(土) 20:35
C#マンセー。信者です
253デフォルトの名無しさん:2001/06/02(土) 20:37
(setq a 1)は関数ではありません。
254デフォルトの名無しさん:2001/06/02(土) 20:53
>>253
は?
255デフォルトの名無しさん:2001/06/02(土) 20:54
マイクロソフトのの犬め!>253
256デフォルトの名無しさん:2001/06/02(土) 20:57
241 名前:デフォルトの名無しさん 投稿日:2001/06/02(土) 19:06
ケースバイケースなのは確かですが
ポインタを使った複雑なデータ構造が必要な場合
lisp,プロローグは使えませんよね。
だから、プログラムの本質が計算の場合は、Javaだと思います。
Javaを使えば、さまざまなアプローチで開発する事ができ、
C++よりも、極端にはやく完成させられます。
プロローグやリスプを使うと、JAVAを使うよりも、
非常に簡潔に記述できるケースがたくさんあります。
しかし、JAVAにできて、lisp,prolorgにできない事が存在する以上
(問題解決という意味ではなく、コンピューターの動作の定義)
JAVAを好んで使ってしまうのは仕方ないと思いまます。
257デフォルトの名無しさん:2001/06/02(土) 21:24
>>250 >>241はJavaも覚えていないだろ。
258デフォルトの名無しさん:2001/06/02(土) 21:29
おもろい
259デフォルトの名無しさん:2001/06/03(日) 00:46
241に期待age!
260デフォルトの名無しさん:2001/06/03(日) 03:53
今日のヒーローはこんなところにいたのか。

ヒーロー列伝スレッドがほしくなってきたな。
一日1人は観察できる。
261デフォルトの名無しさん:2001/06/03(日) 03:55
>>260
今日の出来事スレでも立てるか?(w
262デフォルトの名無しさん:2001/06/03(日) 04:24
一行ごとに突っ込みどころがあるな。実に名文だ。
263デフォルトの名無しさん:2001/06/03(日) 05:41
またしても今日のヒーロー発見。
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987231068&ls=100
264デフォルトの名無しさん:2001/06/03(日) 05:44
>>263
関連するレスだけを引用した方がいいかも
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987231068&st=219&to=234&nofirst=true
265デフォルトの名無しさん:2001/06/03(日) 11:37
なるほど
266241:2001/06/03(日) 19:01
レス遅れてごめんなさい
なるほど、プロローグはプロログと呼ぶんですか
まあ、プロローグができないデータ構造の例の説明なんて不要ですよね
そもそも、そういう言語でない事が明らかなのは
実際にプログラムを書けばわかりますが
(基本的に、バックトラックを用いた解探索なので・・・)
LISPのデータは基本的にLISTです
(pairと読んでましたっけ?でもってアクセス方法はcarとcdrですね)
よってLIST以外のデータ構造は必然的に使えません
例えば、BTreeの実現もLISPで可能ですが、JAVAで書いた物とは
メモリへのデータ割り当て方法(物理的というよりも方法論で)が違う事は
明らかですよね
と書きましたが、LISPでBSearchする場合って
どんなプログラムになります??
ソース乗っけられると痛いんで、
アルゴリズムお願いします>LISP好きさん
>(問題解決という意味ではなく、コンピューターの動作の定義)
それとも、この書き方がまずかったでしょうか??

一番わかりやすい方法は
LISP→JAVAの変換プログラムは、ちょっとめんどくさいですが、かけますが
というより、LISPのインタープリターはCでかかれてたりして?・・・(笑
JAVA(C)→LISPはかなりきついですよね??
(ちなみに、見た目上同じ動作をするものは可能ですが、コンピューター(VM)に
同じ動作をさせる事は無理です)
267Java知らず:2001/06/03(日) 19:30
JavaのBTreeって、どんな構造をしているのですか?
ポインターやセルを扱える C や Lisp のほうが自然に表現できるような気がしますが…
可変長配列とかじゃないですよね?
268中途半端くん:2001/06/03(日) 20:45
269shige:2001/06/03(日) 20:46
ruby最高!
270shige:2001/06/03(日) 20:46
Perl死ね。淫歩
271>267:2001/06/03(日) 20:49
オブジェクト変数とポインタの違いは何?
可変長配列って、ヒープかなんか想像してる?
Cの扱うセルってなんじゃい?

Java知らずってのは、Java初心者って意味か
ごめん
その程度の事は自分で調べればいいんじゃないかな?
Cのポインタがわかってれば、JAVAの参照の意味も
すぐわかると思うよ。
でも、LISPのセルでB木を書くのは・・・

ちなみに、Vectorって線形リストに変更したって噂を
どこかで聞いた記憶が・・・
272デフォルトの名無しさん:2001/06/03(日) 21:05
>ちなみに、Vectorって線形リストに変更したって噂を
Javaのcollection apiだよね?
そんなことはない、実装は配列によるリストだよ。
273デフォルトの名無しさん:2001/06/03(日) 21:28
collectionってインターフェースだったりして・・・
>配列によるリスト
274デフォルトの名無しさん:2001/06/03(日) 21:31
PL/1銀行の勘定系システムはほとんどこれ。
275272:2001/06/03(日) 21:33
>>273
ArrayListと同じ実装ってことだよ。
日本語で何ていうんだ?可変長配列によるリスト・・・?
276デフォルトの名無しさん:2001/06/03(日) 23:24
lispにもvectorあるよ
277デフォルトの名無しさん:2001/06/04(月) 00:24
>>272
線形リストのVectorってどんな意味があるの?
278デフォルトの名無しさん:2001/06/04(月) 00:41
>>266
>LISPのデータは基本的にLISTです
>(pairと読んでましたっけ?でもってアクセス方法はcarとcdrですね)
>よってLIST以外のデータ構造は必然的に使えません

ハァ?何言ってるの?LISPには配列もあるし、リストで色々なデータ構造
を作ることだって出来る。

>よってLIST以外のデータ構造は必然的に使えません
>例えば、BTreeの実現もLISPで可能ですが、JAVAで書いた物とは
>メモリへのデータ割り当て方法(物理的というよりも方法論で)が違う事は
>明らかですよね

これで、意味のある違いと言えば、パフォーマンスで違いが出るということかな。
でもJAVAがLISPよりパフォーマンスいいとは思えないが。

>と書きましたが、LISPでBSearchする場合って
>どんなプログラムになります?

はぁ?普通に書けると思うぞ。LISPだから、再帰を使うことになるだろうね。

> 一番わかりやすい方法は
>LISP→JAVAの変換プログラムは、ちょっとめんどくさいですが、かけますが
>というより、LISPのインタープリターはCでかかれてたりして?・・・(笑
>JAVA(C)→LISPはかなりきついですよね??

そうとは思えないけど。
もし仮にそうだとしても、LISPからJAVAに変換されたプログラムが
かなり読みにくく、人間に扱いづらいものならば、JAVAが優れている
とはいえないから、そのことを持って、JAVAが優れていると結論する
ことは出来ないと思うが。
279デフォルトの名無しさん:2001/06/04(月) 00:51
LISPを知らないのに、
LISPではあれができないこれができないと
決め付けられるのが素晴らしい。
280デフォルトの名無しさん:2001/06/04(月) 00:52
>>277
定数時間で要素の挿入ができるとか。
281デフォルトの名無しさん:2001/06/04(月) 00:52
C→アセンブラは出来るが、アセンブラ→Cは出来ないからアセンブラ
の方が優れていると言ってるのと同じだな。
282デフォルトの名無しさん:2001/06/04(月) 00:58
>>281
ウマイ
283デフォルトの名無しさん:2001/06/04(月) 01:00
lispは必要最低限の機能に絞ると、
とても小さく実装できるのは魅力だと思う。
284266:2001/06/04(月) 01:47
とりあえず、下から順にレスします
>lispは必要最低限の機能に絞ると、
>とても小さく実装できるのは魅力だと思う。
私も1回目の書き込みでそのような事を書きました。

>C→アセンブラは出来るが、アセンブラ→Cは出来ないからアセンブラ
>の方が優れていると言ってるのと同じだな。
論法としてはそうですが、
「C→アセンブラは出来るが、アセンブラ→Cは出来ないから」
これは偽ですね
よって、「アセンブラの方が優れている」を肯定する事にならないのは
明らかですね
安易にだまされてはいけません(笑)>282

>ハァ?何言ってるの?LISPには配列もあるし、リストで色々なデータ構造
>を作ることだって出来る。
>>(問題解決という意味ではなく、コンピューターの動作の定義)
つまり、メモリにどのような値が書き込まれるかと言う事です

>はぁ?普通に書けると思うぞ。LISPだから、再帰を使うことになるだろうね。
質問の意図を理解してないと思います
ちなみに、再帰はアルゴリズムとは言わないと思いますし
「LISPだから再帰」
というのも理解できません。
言語の制約から再帰を使わざる得ないという意味でしょうか??
ちなみに、JAVAでも再帰で処理しますが・・・・
知りたいのは、ソースほど具体性はなく、アルゴリズムほど抽象的でない
説明です。

>パフォーマンス
メモリ管理と、実行処理速度の話でしょうか?
私はそこまで詳しく知りませんが、常識的に考えれば
ありえない話だと思いますが。

>もし仮にそうだとしても、LISPからJAVAに変換されたプログラムが
変換可能が意味する事は、記述可能と言う事です。
すなわち、変換不可能というのは、処理を記述できないという事です。
「読みにくさ」という度合いで、あれこれ考えているようでしたら、
見当違いな気がします。
私の書き方も悪かったのかも知れませんが、
(まだ20年しか日本語を使っていないので(笑))
もう一度読んでみてください。

ちなみに、配列があることは知りませんでした。
でも、線形リストはほぼ配列と同じなんで問題はないでしょう。

常にあげといてもらえば、また書き込みにきます。
忙しいので、ちょっと時間があいてしまいそうですが・・・
285デフォルトの名無しさん:2001/06/04(月) 02:06
>>284
>つまり、メモリにどのような値が書き込まれるかと言う事です

で?何がいいたいの?JAVAの方がメモリの効率が良いといいたいの?
そうとは思えないが。

>ちなみに、再帰はアルゴリズムとは言わないと思いますし
>「LISPだから再帰」
>というのも理解できません。
>言語の制約から再帰を使わざる得ないという意味でしょうか??

再帰はアルゴリズムの性質を説明する言葉だろ。
LISPは再帰を使うことが簡単に出来るから、多くの場合
使うということ。BSearch程度なら別に使わなくたって
簡単に出来る。
というか、この辺に噛み付いてもしょうがないことだろ。

>ちなみに、JAVAでも再帰で処理しますが・・・・
>知りたいのは、ソースほど具体性はなく、アルゴリズムほど抽象的でない
>説明です

だから、普通に出来るっての。これだけの説明で十分だろ。
説明しろと言われても、普通にやれば出来ることに説明なんて
いるのか?
逆になんで出来ないと思うのかがさっぱりわからん。

>メモリ管理と、実行処理速度の話でしょうか?
>私はそこまで詳しく知りませんが、常識的に考えれば
>ありえない話だと思いますが

ハァ?何がありえないの?
JAVAよりLISPのパフォーマンスが良いということが、常識的
に考えればありえない話なの?(藁

>変換可能が意味する事は、記述可能と言う事です。
> すなわち、変換不可能というのは、処理を記述できないという事です。
>「読みにくさ」という度合いで、あれこれ考えているようでしたら、
>見当違いな気がします。

だから、記述可能をもって、JAVAが優れていると結論することは出来ない
っての。読みにくさや、拡張しやすさ等の要素も考慮しないと。

ていうか、JAVAをLISPに変換する方が難しいなんてどこからそんな
結論が出るんだ?で、そうだとして、なんでJAVAが優れてるんだ?

>ちなみに、配列があることは知りませんでした。
>でも、線形リストはほぼ配列と同じなんで問題はないでしょう

パフォーマンスに違いが出るだろ。
つーか、問題無いならいいだろ。
LISPはリスト以外のデータ構造も余裕で扱える。何も問題無い。
286デフォルトの名無しさん:2001/06/04(月) 02:07
どこが問題かを指摘せずにこう言うのも何だが、イタスギル。
287286:2001/06/04(月) 02:07
288デフォルトの名無しさん:2001/06/04(月) 02:08
>>286
激しく同意。
289デフォルトの名無しさん:2001/06/04(月) 02:12
ある問題領域において、言語によって向き不向きが存在することを、
実例を出して比較検討するなら分かる。
また、どういった点において向いているのか向いていないのかも含めてだ。
(記述容易性や可読性など観点は色々あるだろう)

言語仕様によって問題解決のためのアプローチの違いが現れるのは当然であり、
特定用途に特化していない汎用言語であれば、
コード量や記述容易性の違いはあれ同じ事ができる。

*アプローチの違い
LISPではプリミティブなデータ構造であるリストを活用するために再帰を良く用いる。
Javaは手続き型+オブジェクト指向なのでクラスでデータ型を規定し、メソッドでデータを逐次的に操作する。

第一、241氏のいう「できないこと」は不明瞭で意図がはっきりしない。
290デフォルトの名無しさん:2001/06/04(月) 02:33
まあ、2ch初心者っぽいから、あんまり煽るとかわいそうだ。
291デフォルトの名無しさん:2001/06/04(月) 02:58
>>284
>「C→アセンブラは出来るが、アセンブラ→Cは出来ないから」
>これは偽ですね

正気かよ。
292デフォルトの名無しさん:2001/06/04(月) 04:27
>>291
やろうと思えば、アセンブラ→Cぐらいできそうだよね。
すごいソースになりそうだが…
293デフォルトの名無しさん:2001/06/04(月) 05:04
>>292
Cでどうやって特定のレジスタを探すんだ?
294デフォルトの名無しさん:2001/06/04(月) 05:11
>>293
同じ処理が出来ればいいのであって
使うレジスタまで一緒の必要はないだろ。
295デフォルトの名無しさん:2001/06/04(月) 05:42
>>294
レジスタが違ったら同じ処理にならないだろ。
それとも人工知能でも搭載して同じ処理になるようにするのか?
296デフォルトの名無しさん:2001/06/04(月) 06:40
アセンブラ以外でセクタリードとかできる?
297241:2001/06/04(月) 07:01
気になったんできてみました。
>285
ちょっと、よくわかってないようなので
もう一度読み直してください
>「C→アセンブラは出来るが、アセンブラ→Cは出来ないから」
たしかに、レジスタまで決めるのはきついかも知れませんが、
コンパイラは割り当て規則でももってそうなきもしますが・・・・
でも、私が言いたいのは
メモリの内容であり、演算方法(処理方法)ではない事に注意していただきたいです。
そのレベルで、変換可能という意味では話の筋は通りますよね。

>実例を出して比較検討するなら分かる。
ん〜確かにそうですね。
例えば、LISPもオブジェクト指向で考えてもらうとして
(データをひとまとまりとしてかんがえる)
話を進めますと、
100個のデータをリストorオブジェクトを使って
ひとまとまりにした場合
C,JAVAでは、100個分のメモリ領域を一気に確保するのに対して、
LISPでは、100個のデータをリストで連結します
100個目のデータにアクセスする場合、
C,JAVAでは、メモリアドレスを指定して呼び出す(細かいところはわかりません)
のに対して、
LISPでは、ポインタをたどって100個目のコンスセル(?)まで行かなくては
いけない
(ところで、これをするにはどうしてますか??
100回のループを作って処理をするか?
cdddd・・・・dddrって書きます?
処理的にはどっちが速いのでしょうか??

これでは、パフォーマンスのチューニングができない
といいたかったのですが、
実際にLISPには、配列もあるらしいという事で、
もし配列が、データサイズとメモリアドレスを記録するようなものであれば
任意のデータ型が格納できそうですが、
どうなんでしょうか?

ちょっとLISPの記憶が薄れているので、
BTreeとBSearchの例でもどなたか書いてもらえないでしょうか??

>コード量や記述容易性の違いはあれ同じ事ができる
241を見てください

でも、いろいろ言ってきましたが
最良のプログラミング言語は、
(アセンブラはプログラミング言語といえないので考えません)
自分の考えた処理を
一番簡潔に速く書ける事ですよね
皆さんは何が最良だと思ってるんでしょうか?
298デフォルトの名無しさん:2001/06/04(月) 07:02
間違えた
cdddd・・・・・arですね
299デフォルトの名無しさん:2001/06/04(月) 07:09
おれ結構いろんな言語いじって来たつもりだけど、
アセンブラほど単純でめんどくさくて
それでいて興奮する言語は無かったな。
いまじゃ使いものになんないんだろーな。
300デフォルトの名無しさん:2001/06/04(月) 09:53
アセンブラたん、ハァハァ
301デフォルトの名無しさん:2001/06/04(月) 15:03
>>297

LISPのベクターは認めない、という事?
302301:2001/06/04(月) 15:05
省略された部分を表示したら配列の事が書いてあった。
鬱だ。
303デフォルトの名無しさん:2001/06/04(月) 18:16
ハードを直接いじった入りするプログラムは
アセンブラじゃないと書けないらしいよ。
304デフォルトの名無しさん:2001/06/04(月) 18:17
>>301
ただの馬鹿だから相手するな。
305デフォルトの名無しさん:2001/06/04(月) 18:44
>>297
よくわかってないのはお前。
LISPについてまるでわかってないから話にならん。
これだけ親切に回答してやってもまだ全然わかってないし。

> LISPでは、100個のデータをリストで連結します

だから配列あるって。何度言わせるんだ。

>(ところで、これをするにはどうしてますか??
>100回のループを作って処理をするか?
>cdddd・・・・dddrって書きます?

(nth 100 somelist) ;リスト
or
(aref somearray 99) ;配列

>ちょっとLISPの記憶が薄れているので、
>BTreeとBSearchの例でもどなたか書いてもらえないでしょうか??

http://www.geocities.co.jp/SiliconValley-Oakland/1680/xyzzy_lisp/xyzzy22.html
306301:2001/06/04(月) 19:14
>>304
なるほど。認めないんじゃなくて知らないのか。
途中から読んでるんで経過を知らなかった。すまぬ。
でもなんでそれでLISP語ってるの?かなり謎なんだけど。

305で十分だとおもうが、

(define v (make-vector 100))
で、100個の要素のベクタが定義できて、

(vector-set! v 1 22)
(vector-set! v 50 34)
で、1,50番目に22,34がセット出来て、
(vector-ref v 1)
で22が、
(vector-ref v 50)
で34が得られる。満足?>>297
307297:2001/06/04(月) 19:20
確かに、私のLISPの知識は浅かったようです。
プログラミング歴1年と2ヶ月という事で勘弁してください(笑
defstruct
は構造体と同じ事なんでしょうか??

LISPインタプリターがどのようにメモリ管理をやっているのかに
興味がわきました。
配列は、どのように実現しているのでしょうか?
Cのようにデータサイズ*要素数のメモリ領域を一気に
確保するというものではなさそうな気もしますが
(PERLみたいな感じですかね)


暇を見つけて、LISP使ってみたいと思います
お勧めのインタプリタなんてあります?(高機能なやつ希望)
xyzzyはエディタとして使ってますが、
印刷する時の設定がいろいろできて得した気分です。
あと、C-x C-sですかね・・・
ちなみに、私はschemeを使っていました。
最近はLINUXがはやってるんで、LINUXでプログラムを書こうかと
思ってるんですが、LINUXで動くLISPなんてのもあるんでしょうかね??

で、結局のところLISPでは自由にメモリを管理できるのでしょうか??
私のLISPの技術ではできませんが、
LISPに詳しい方はできるのでしょうか??

それとLISPのメリットなんてのもあったら教えてください
308デフォルトの名無しさん:2001/06/04(月) 19:22
>>307
> ちなみに、私はschemeを使っていました

ネタだろ?ネタだと言ってくれ。
309301:2001/06/04(月) 19:38
>>307
> ちなみに、私はschemeを使っていました

ネタじゃないならアルツハイマーの恐れあり。
診断してもらう事を推奨する。
310デフォルトの名無しさん:2001/06/04(月) 21:15
このスレッドは、

   「LISPを教えてください」

に変更になりました。
311301:2001/06/04(月) 21:24
>>310
http://mitpress.mit.edu/sicp/full-text/sicp/book/node1.html
って事で

■■■■■■■■■■■ 終了 ■■■■■■■■■■■
312デフォルトの名無しさん:2001/06/05(火) 06:55
>>307
>Cのようにデータサイズ*要素数のメモリ領域を一気に
>確保するというものではなさそうな気もしますが
そうしてると思う。
scheme使ってるのになぜlispを使う?
313デフォルトの名無しさん:2001/06/05(火) 07:13
(((((() . e) . d). c). b). a)
314デフォルトの名無しさん:2001/06/05(火) 09:51
どうでもいいが、メモリメモリって、、、
javaでメモリ内での構造まで制御できるわけ?
実装依存なんじゃないのか?
315デフォルトの名無しさん:2001/06/05(火) 15:31
>>314
だからただのアホだってば。
316デフォルトの名無しさん:2001/06/05(火) 22:16
Javaもlispもgc使うでしょ。
(gc使わないlispもあるかもしれないけど。)
メモリ管理についてはあんまし変わらないのでは?
それからlispのvectorは連続する領域取ってます。
317デフォルトの名無しさん:2001/06/05(火) 22:22
>それからlispのvectorは連続する領域取ってます。
それは実装依存じゃなくて?
(大抵の)JVMだって配列は連続する領域を取っているんじゃないの?
318デフォルトの名無しさん:2001/06/05(火) 22:29
>>317
「実装依存」がどういう意味かわかりませんが、
アクセス時間はどの要素を参照しても一定になる筈です。
所で実装は見えなくていいんでは?
「連続する領域」って表現がまずかったですか?
319デフォルトの名無しさん:2001/06/05(火) 22:34
C言語のmemcpyに相当する関数は多分無かったと思います。
vectorをコピーする場合、インデックス毎にアクセスするだけだから。
ということは、領域は連続していなくても良い?
内部である決まったブロック単位に分割して置くとか。
(gcで断片化されたメモリから連続する空き領域を探索するのは結構コストがかかる)
320デフォルトの名無しさん:2001/06/05(火) 22:46
じゃあvectorってB-Treeみたいなのでも可?
[[0 1 2 3][5 6 7 8][9 10 11 12][13 14 15 16]]
321デフォルトの名無しさん:2001/06/06(水) 00:16
>>319
この電波な書き込みはまさか…241?
322319(241ではないです):2001/06/06(水) 01:13
電波みたいでしたか・・。
出直してきます。
323デフォルトの名無しさん:2001/06/06(水) 12:15
>>318
規定されているとおりに使うことが出来ればいいわけで、
VM内部での処理方法まで規定されているわけではない。
したがって、

>アクセス時間はどの要素を参照しても一定になる筈です。
これは保証されていない
324デフォルトの名無しさん:2001/06/06(水) 15:04
>>321
どの辺が電波なんだ?
>C言語のmemcpyに相当する関数は多分無かったと思います。
この辺?
325shige:2001/06/06(水) 18:00
るby
326241:2001/06/06(水) 23:15
SchemeがLISPの方言だって事くらい知ってますよ(笑
ただ、方言だから
もっと優れたLISPがあるのかと思ってそういう表現をしました
(もしかして、そういう突込みじゃないとか??)
Schemeにも配列があったのでしょうか?
全てコンスセルでやってました。

>javaでメモリ内での構造まで制御できるわけ?
ポインタわかります??
ポインタのたどり方によって、
データへのアクセス時間が変わってきますよね??

LISPのベクターってのは可変長配列なんですかね〜
連続って事は、サイズが変わるたびに領域を確保しなおしてるんですね
気分的にその動作は結構嫌いだったりするんですよね
でもって、連続領域を確保するという事は、
配列にはアドレスとデータフォーマットがきっと入ってるんですね
LISPにはどんなデータフォーマット(データ型)があるんですかね
ちなみに、javaのgcはlispから勉強させてもらった
物だと本に書いてあったような記憶があります。
個人的には、gcじゃない方が良かったのですが、
それはjavaの設計思想に反しますから仕方ない事ですね

ところで、
「やじ」も慣れると目に入らなくなりますね(笑
目に入る「やじ」は荒らしって言ったりするだけの事かも・・・
「やじ」好きのみなさん、斬新な「やじ」お願いします

ではでは
327デフォルトの名無しさん:2001/06/06(水) 23:23
241って、"(笑"が多くて水野みたいだ・・・。
328デフォルトの名無しさん:2001/06/06(水) 23:26
scheme*使ってた*のに配列も知らないとはどういうこと?
ひょっとして >>325-326 の流れ的に
shige=241ですか?
だったらほんとに病院行った方がいいと思いますが。
329デフォルトの名無しさん:2001/06/06(水) 23:35
>>328
いやいや、

>>284
から推測するに、末尾再帰の最適化も知らんらしいぞ?(藁
それとも最近のJavaは末尾再帰の最適化がされるようになってるのか?
330241:2001/06/06(水) 23:52
>から推測するに、末尾再帰の最適化も知らんらしいぞ?(藁
うっ
知らないです・・・・
末尾再帰ってなんですか?

ついでに、
>241って、"(笑"が多くて水野みたいだ・・・。
も興味あり

>scheme*使ってた*のに配列も知らないとはどういうこと?
どうやって配列作るんですか?
331デフォルトの名無しさん:2001/06/07(木) 00:07
241黙れ
332デフォルトの名無しさん:2001/06/07(木) 00:09
>>330
処理系のマニュアルや言語仕様書読めよ
333スレッド"管理人":2001/06/07(木) 00:10
このスレッドは、

  「241です。Schemeについて教えてください。」

に変更されました。
334309=329:2001/06/07(木) 00:24
>>330
、、、ごめん。俺が全部悪かった。すまん。許して。
335デフォルトの名無しさん:2001/06/07(木) 02:19
241は真性厨房なんじゃないのか?
336335:2001/06/07(木) 02:19
s/真性厨房/リアル厨房/
337デフォルトの名無しさん:2001/06/07(木) 05:20
ada
338デフォルトの名無しさん:2001/06/07(木) 16:17
>>326
schemeは最も優れたlispです。
schemeより優れたlispがあるならこっちが知りたい。
339デフォルトの名無しさん:2001/06/07(木) 16:21
他の言語>>>>>>>>>>>>>>>>>>>>>>scheme>lisp
ってことだな(藁
所詮lispってemacsのマクロ言語でしょ?
340デフォルトの名無しさん:2001/06/07(木) 16:42
無知な>>339晒しage
341デフォルトの名無しさん:2001/06/07(木) 16:44
もう一回、無知な>>399晒しage
342デフォルトの名無しさん:2001/06/07(木) 16:46
煽りにマジ反応するscheme信者痛い
343デフォルトの名無しさん:2001/06/07(木) 16:52
ZetaLispを知らないの?
344340:2001/06/07(木) 16:53
>>342
失礼な。
俺はScheme信者でなくLisp信者だ。
345デフォルトの名無しさん:2001/06/07(木) 16:54
Kyoto Common Lisp を知らないの?
346デフォルトの名無しさん:2001/06/07(木) 20:28
>>338
本当にSchemeがCommon Lispより上だと思ってるの?
確かに、Schemeは優れているけど、シンプルすぎて
実用性の点で少し劣ると思う。
ミニマル主義って言うのかな?
それはちょっと違うと思うんだよね。
ifとgotoがあっても、whileやforがあった方が良い
のと同じ。
347!=338:2001/06/07(木) 20:34
審美的にはSchemeが上。
実用的には…Lispもどっこいどっこい。Schemeも、
R5RSだけではダメだけど、たいていの実装にはいろんな
関数があるからね。
348デフォルトの名無しさん:2001/06/07(木) 20:35
とりあえずこの板には関数型言語をさわったこともないのに
けなす奴が多いな。無知まるだし。もっとも、おれはVBさわったことないがね。
349デフォルトの名無しさん:2001/06/07(木) 21:30
Schemeは標準規格(現行R5RS)が小さい事による代償で、拡張実装が氾濫しています。
これはC言語でいう、環境依存部分の処理系特有のライブラリの様な物から、
CommonlispのCLOSの様な構文拡張や、コンパイラの出力コードの効率を
上げるための明示的型宣言とか。
SFRI(インターネットにおけるRFCの様な物かな?)という拡張仕様まである。
結果的に各処理系間での移植性はそんなに良くないのが現状です。
移植性という観点で見ると、CommonLispの方がまだマシな気がします。
実装が小さくできるのはいいんですが。
(ちなみにCommonLispの仕様満たす実装を1から作るのは大変な手間です。)
350338:2001/06/08(金) 01:03
>>343 >>345
初めて知りました。さっそく調べてみます。
>>346 >>349
そのとおりです。表現が過ぎました。

347ではありません。
351デフォルトの名無しさん:2001/06/08(金) 01:16
Schemeが美しいってのには同意。
標準で定められてるライブラリが少ないので
自分で拾ってくるか、作るか。
使っていくにはそれなりの努力が必要。
352338と350:2001/06/08(金) 01:48
>>343 >>345
調べました。いろいろあるんだな〜。
lisp1.5とschemeとCommonLispとEmacs-Lisp以外知りませんでした。
人のことは言えません。
>>326の人 すみません。
353デフォルトの名無しさん:2001/06/08(金) 04:15
>>348
少しだけSchemeを触った上で批判してる奴もいたようだが。
まあ、無知だったけどな。(藁
354デフォルトの名無しさん:2001/06/08(金) 04:22
>>352
現行の有名所って意味では
>schemeとCommonLispとEmacs-Lisp
の3つでいいんじゃない?
355デフォルトの名無しさん:2001/06/08(金) 04:36
Kyoto Common Lisp(GCL)は、CommonLisp第1版の内容まで
しか実装されてない、と昔聞きましたが。
356デフォルトの名無しさん:2001/06/08(金) 04:38
>>354
CommonLispを作った時に結構みんな移行したからね。
今から思えば仕様の策定と同時に実装していたKClのおかげかもね。
357345:2001/06/08(金) 04:44
>>355
うん。
言ってみただけ。
気にしないで。
358デフォルトの名無しさん:2001/06/08(金) 04:45
>>355
http://www.gnu.org/software/gcl/gcl.html
>GCL supports the CLtL1 specification.
らしい。
359デフォルトの名無しさん:2001/06/08(金) 04:47
>>355
つーか、KCl作ってた時は第1版も出版されるかされないかの時期。
XeroxのPCLベースのCLOSの実装ならあるが遅い。
360デフォルトの名無しさん:2001/06/08(金) 06:15
Schemeに一票。言語の表示的意味を厳密に書ける言語は美しい。
361デフォルトの名無しさん:2001/06/08(金) 06:22
日本語に一票。
構成の自由度と文章表現の多彩さはピカイチ。
難点はキャラクターコードが多すぎること。
362デフォルトの名無しさん:2001/06/08(金) 08:56
>>361
難点というか、逆にそれは日本語の利点だろ。
漢字なくなったらよみにくくなちゃうよ。
363デフォルトの名無しさん:2001/06/08(金) 14:51
難点は赤ちゃんの時から慣れ親しんでない限り、
習得が困難であること。
364デフォルトの名無しさん:2001/06/08(金) 17:20
>>360
えっ、Scheme の Denotational Semantics って??可能なの。
365デフォルトの名無しさん:2001/06/08(金) 20:28
>>361 どっか行ってください
366デフォルトの名無しさん:2001/06/08(金) 21:02
Cでいいよ
367デフォルトの名無しさん:2001/06/08(金) 21:04
すべてのループを再帰的手続きで記述すると何が嬉しいのですか?
368デフォルトの名無しさん:2001/06/08(金) 21:27
ただのループじゃないよ
369デフォルトの名無しさん:2001/06/08(金) 21:41
>>367
数学的な関数としてそのまま書けるのが重要なんだと思われ
(de (f n) (f n))
無限ループ(停止条件無し)
(de (f n) (if (= n 0) n (f (- n 1))))
nが0になるまで繰り返す有限ループ
どっちのfも末尾再帰なのでフレームを生成せず上書きする。
前者の上書き n -> nの評価結果
後者の上書き n -> (- n 1)の評価結果
370B:2001/06/09(土) 00:30
CZX言語
371デフォルトの名無しさん:2001/06/09(土) 00:52
全ての再帰手続きをループで表現するとなにが嬉しいんですか?
3722ch初心者君:2001/06/09(土) 01:10
>>371
移植性と実行速度の問題 だったかな
373デフォルトの名無しさん:2001/06/09(土) 01:23
schemeは末尾再帰を最適化するよ。
374デフォルトの名無しさん:2001/06/09(土) 01:40
再帰手続きはループだろ。>371
375371:2001/06/09(土) 02:09
ループは再帰だろ。>374
376デフォルトの名無しさん:2001/06/09(土) 02:41
for(;;){puts("recursive?");}
377デフォルトの名無しさん:2001/06/09(土) 02:50
(define (recursive)
(display "loop?")
(recursive))
378デフォルトの名無しさん:2001/06/09(土) 02:50
fun recursive s = (puts s;recursive s)
recursive "Yes."
379デフォルトの名無しさん:2001/06/09(土) 02:59
>375
for(;;){puts("recursive?");} が再帰か聞いてるんだけど?
それともループじゃない?(藁
380375:2001/06/09(土) 03:03
>>379
まあ再帰じゃないけど。
じゃあ再帰関数もループじゃないと思うが?
ツリーをたどる例とかもっと複雑な例を考えればわかると思うが。
ループでも表現出来る、という話なら再帰でも表現出来る、
という話と同じだと思うし。
まあなんで使うの?
という質問をみてなんで使わないの?と感じただけで深い考えが
ある訳じゃないが。
381デフォルトの名無しさん:2001/06/09(土) 03:08
>まあ再帰じゃないけど。
ループは再帰なんじゃないのか? < 375

>じゃあ再帰関数もループじゃないと思うが?
意味不明。
382デフォルトの名無しさん:2001/06/09(土) 03:08
ループごときでいちいち再帰を使われたら
デバッガでトレースしずらそう。
383375:2001/06/09(土) 03:15
ループってのが何をさしてるのかがわからんが。
SICPからのコピペなら、

(define (count-change amount)
(cc amount 5))

(define (cc amount kinds-of-coins)
(cond ((= amount 0) 1)
((or (< amount 0) (= kinds-of-coins 0)) 0)
(else (+ (cc amount
(- kinds-of-coins 1))
(cc (- amount
(first-denomination kinds-of-coins))
kinds-of-coins)))))

(define (first-denomination kinds-of-coins)
(cond ((= kinds-of-coins 1) 1)
((= kinds-of-coins 2) 5)
((= kinds-of-coins 3) 10)
((= kinds-of-coins 4) 25)
((= kinds-of-coins 5) 50)))

はループ?
384375:2001/06/09(土) 03:18
わかりづらいのでもうちょっとシンプルな例。
http://www.edu.cs.kobe-u.ac.jp/Enshu6/2000/scheme_web/lambda_exercise.html#2
からのコピペだが、
(define (infinite-enumerate n) (cons n
(lambda () (infinite-enumerate (+ n 1)))))
(define (head inf-list) (car inf-list))
(define (tail inf-list)
(let ((rest (cdr inf-list))) (rest)))
(define (nth-inf-list n inf-list)
(if (= n 0) (head inf-list)
(nth-inf-list (- n 1) (tail inf-list))))

はループ?
385デフォルトの名無しさん:2001/06/09(土) 03:24
別に、ループが良ければループにして、再帰にしたけりゃ
再帰にすればいいじゃん。
lispでループ使ったっていいし、Cで再帰使ったっていい。
好みの問題と効率等の適材適所の問題でしょ。
386デフォルトの名無しさん:2001/06/09(土) 03:31
>386
話がずれまくってると思うんですけど。
387デフォルトの名無しさん:2001/06/09(土) 03:32
386 > 385 ね
388デフォルトの名無しさん:2001/06/09(土) 03:33
>>386
だから、今の話の方こそずれてると思うんだよ。
ただのいちゃもんの付け合いにしか見えないんだよ。
389デフォルトの名無しさん:2001/06/09(土) 03:37
どこが?具体的に言ってくれ。
390デフォルトの名無しさん:2001/06/09(土) 03:43
再帰はループだとか、いや、そうじゃないとか。
だから何なの?
もともとは再帰の利点は何?って感じの話だったのに。
391デフォルトの名無しさん:2001/06/09(土) 03:46
問いが議論に発展してはいけないと?

>再帰はループだとか、いや、そうじゃないとか。
>だから何なの?
Schemeを知ってますか?
392デフォルトの名無しさん:2001/06/09(土) 04:27
だれか、ghc-5.00.1のwinバイナリ作ってくれ
393デフォルトの名無しさん:2001/06/09(土) 05:15
>>391
その議論がどうでも良さげ。
394375:2001/06/09(土) 05:57
すまん、俺が375でいった事を無駄に弁護したのがはじまりっぽいので。
375でいった事には間違いが多く含まれます、すみません。

で、再帰を使う利点、まで話を戻すと、
whileは再帰で実装する事が出来て、再帰で実装できる事でwhileで実装
出来ない事はある。
再帰はいろいろな事が統一的に扱えるのに、わざわざwhileを使う、
というのが何か嫌だ、という感じか?
再帰は帰納的考えがそのままあらわせて楽、というのもある。
もちろんタイプするのが面倒ならwhileというシンタックスシュガーを使えば
いい。
395デフォルトの名無しさん:2001/06/09(土) 06:11
whileがシンタックスシュガーというのは正しいんですか?一般的に。
396デフォルトの名無しさん:2001/06/09(土) 06:40
>>395
用語の使い方が微妙におかしい気がする。「〜に対しての」が抜けてる。
「whileが〜のシンタックスシュガー」なら判るけど。

で、scheme(その他にhaskell/MLなど)においては、whileが末尾再帰ループのシンタックスシュガーというのは間違いじゃない。
例えば↓のスレにschemeでwhile do〜while forをnamed-letのシンタックスシュガーとして実装したコードがある。
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987169286&ls=50

素のlispだと末尾再帰してくれる保障は無いので、こっちはCと同様に、gotoのシンタックスシュガーと解釈する。
397デフォルトの名無しさん:2001/06/09(土) 06:57
whileは末尾再帰のシンタックスシュガーであったほうが好ましいんですか?
398375:2001/06/09(土) 07:25
>>397

whileなんて使わないからどうでもいい。
whileが主要な制御構造の一つだったら気分的には嫌だが、それ以上
の被害は無いし。
399デフォルトの名無しさん:2001/06/09(土) 08:53
>>383
SICP の count-change は樹状再帰で、末尾再帰じゃないからループ
にはならない。これを末尾再帰にするのは結構難しいよ。
400375:2001/06/09(土) 11:51
>>399
いや、それは俺の負け、っていう事で。
401デフォルトの名無しさん:2001/06/09(土) 13:37
>>383-384
すげー保守性悪そうなコードだな。
優れているのかもしれないが、
俺はこれで仕事をしたくない。
402375:2001/06/09(土) 13:50
>>401
383はおいといて、384はそんなに保守は悪く無いと思うが。
インデントが無いのでよみづらい、とは思うが。
少なくともテストが簡単に出来る分、Cなんかよりはマシ、
と思うけど。
lambdaがフレーム持ってる、という所がわかりにくいが、
馴れればシンプルで高い表現力が得られると俺は思う。
まあMLの方が読みやすい、といわれると反論する場所は無いが。

俺はこれで仕事がしたいが、会社はVC++(T_T)
403デフォルトの名無しさん:2001/06/09(土) 18:13
>俺はこれで仕事がしたいが、会社はVC++(T_T)
で仕事ができる会社ってあるんですか?
404375:2001/06/09(土) 19:41
>>403
さぁ?
bitとかではよく使用事例の記事があったし、Webでも使われている、
というページはみるが、求人でScheme募集、ってみた事は俺は無い。
どっかにはそういう会社もあるだろうけど、極めて少数ではあると思う。
405デフォルトの名無しさん:2001/06/10(日) 00:22
AIや言語関係の仕事とかならあるんじゃない?
あと開発支援とか。
406デフォルトの名無しさん:2001/06/10(日) 22:54
age
407デフォルトの名無しさん:2001/06/10(日) 23:17
>>404
バイト先はKAWAで開発でしたが、何か?
408デフォルトの名無しさん:2001/06/10(日) 23:30
>>407
kawaってJava上で動くschemeでしたっけ?
できればどんな分野の仕事だったのか教えてください。
409デフォルトの名無しさん:2001/06/10(日) 23:57
エージェント
410デフォルトの名無しさん:2001/06/11(月) 00:47
えーじぇんと?
411404:2001/06/11(月) 02:38
>>407

おぉ、うらやましい。いいなぁ。
やっぱり仕事でもScheme使えれば楽しいだろうねぇ。
CとC++使ってると俺は暗い気持になる。
412デフォルトの名無しさん:2001/06/11(月) 22:54
くらいきもち?
413デフォルトの名無しさん:2001/06/11(月) 22:57
>>411
実行効率がそれを阻むからか?
scheme->cしてもgc回りは残るからねぇ・・
414デフォルトの名無しさん:2001/06/11(月) 22:59
schemeがはやらない理由は何よ。
415デフォルトの名無しさん:2001/06/11(月) 23:00
>>413
gcが残るだけでも問題なのくわぁ・・・。
416デフォルトの名無しさん:2001/06/11(月) 23:05
javaも残る(っていうの?)ぞ>413
つーかgc使ってるやつみんな残る
417デフォルトの名無しさん:2001/06/11(月) 23:10
gcはgc時間を分散できればそんなに問題にならないと思うけど。
昔自分で作ったscheme処理系は8割り方文脈&明示的開放で回収出来るようになった覚えがある。
(残り2割は継続で残る環境とschemeコードで明示的開放をしてない部分。)
418デフォルトの名無しさん:2001/06/11(月) 23:17
>>414
括弧(・∀・)イイ!からでしょ
419デフォルトの名無しさん:2001/06/11(月) 23:19
dylanなんか、schemeの括弧無し版だと思ったんだけど、どうよ?
420デフォルトの名無しさん:2001/06/11(月) 23:25
>>417
JVMのGCは、なんか進化していってるみたいだよ。
フル(ゴミ一斉掃除)GC→
インクリメンタル(ちょっとずつ)GC→
コンカレントGC(GC用スレッド並列常駐)→
パラレルGC(別CPU同時実行)(オイオイ、ホントカヨ…)
421デフォルトの名無しさん:2001/06/11(月) 23:29
>>414
大規模なプログラムに対して型無しなのが致命的なのでは。
422デフォルトの名無しさん:2001/06/11(月) 23:30
>>420
>パラレルGC(別CPU同時実行)(オイオイ、ホントカヨ…)
何か問題あるのか?
423デフォルトの名無しさん:2001/06/11(月) 23:32
HaskellとMLとSchemeの中じゃどれが最強?
近親憎悪の罵り合いきぼ〜ん。
でも煽りじゃないよ。本当に知りたいのだ。
424デフォルトの名無しさん:2001/06/11(月) 23:34
どれが最強つーか、目指す所が違うんでは>423
でもHakellとMLは近いのかな?
425デフォルトの名無しさん:2001/06/11(月) 23:37
>>421
型無し、つーかインタプリタだからなんじゃ?
型有りにしようと思えばできるし。
426421:2001/06/11(月) 23:44
>>425
ソリ―。型無しじゃなくて、静的な型チェックがないよね。
427デフォルトの名無しさん:2001/06/12(火) 00:27
Schemeがはやらないのは、括弧ばかりで初めは読みにくいし
'記号がわかりにくく、マクロやラムダ関数の定義が読みに
くいからでしょ。
静的な型が無いのも一因かな。
Dylanは良い言語みたいだけど、appleがDylan関係の
プロジェクトを打ち切ってしまったらしい。
428デフォルトの名無しさん:2001/06/16(土) 04:57
はじめだけだよ>427
quoteも判らんかった様な奴に何言っても無駄だとは思うけどさ。
429デフォルトの名無しさん:2001/06/18(月) 03:30
最初からいきなり慣れを要求してどうする。
それって敷居が高いと自ら認めているようなものだ。
430デフォルトの名無しさん:2001/06/18(月) 06:55
loopは線形再帰ですか?
431デフォルトの名無しさん:2001/06/18(月) 07:01
Scheme が流行らないのは、難しいとかいう話じゃなく
やってみようと思う人が少ないのがイカンのかと。
432デフォルトの名無しさん:2001/06/18(月) 08:08
まあ、Dylanなら流行る可能性はあったんだけどねぇ。
Schemeと違って静的な型があったようだし、普通の書き方をする。
433デフォルトの名無しさん:2001/06/20(水) 07:21
lisp,schemeは `ABC
LOGOは "ABC
Smalltalkは #ABC
434訂正:2001/06/22(金) 00:21
lisp,schemeは 'ABC
LOGOは "ABC
Smalltalkは #ABC
435デフォルトの名無しさん:2001/06/22(金) 01:40
(゚д゚)
( ) が大量発生してる、ださださ言語は逝って良し!!!
C++さいこー・・・



GCは羨ましいけど・・・
436デフォルトの名無しさん:2001/06/22(金) 03:04
>>435
C言語 f(x y)
lisp (f x y)
括弧の数は変わりませんが?
437デフォルトの名無しさん:2001/06/22(金) 03:07
>>436
C言語 3 + 4
Lisp (+ 3 4)
438デフォルトの名無しさん:2001/06/22(金) 03:09
439435:2001/06/22(金) 07:50
>>438
インタプリタは問題外だろと思うけど。
実行速度なんてものは、CPUの速度でなんとかなるんだよな・・・
っていうかperlみたいにコンパイラあるのかな?

それよりも end っていうのかダサい気がするなぁ。
直感的ぢゃないっていうか、うーん。
{ } じゃまずかったんだろうか・・・

それ以外は(・∀・)イイ!!と思うヨ。

ちゃんと解ってる人が書けば、
C++はそんなに悪い言語じゃないと思う・・・
440アーヒャヒャヒャヒャヒャヒャヒャ・:2001/06/25(月) 19:31
アーヒャヒャヒャヒャヒャヒャヒャ
441デフォルトの名無しさん:2001/06/25(月) 22:41
()の大量発生なんて、あまたある利点の前ではどうでもよろしい。
プログラムをファーストオブジェクトとして扱えないダサダサ言語は逝って良し。
442デフォルトの名無しさん:2001/06/25(月) 22:47
>>441
アプリを作れない言語に利点なんかあるの?
エディタなんかじゃなくてさ、ワープロ、DTP、
表計算、ブラウザ、なんでもいいから見せてみろよ。
どうせ、テキストベースの腐ったインターフェイスのものを
作るのが関の山だろう?
ぷ。ダサダサ言語って当然lispのことだよね?
VBは大嫌いだけど、lispよりかはまだマシだな。
443デフォルトの名無しさん:2001/06/25(月) 22:54
凄腕のハッカーたちが寄ってたかって愛用しているわりに、
何も生み出されない糞言語lisp。
ソフトが作れりゃいいってもんじゃないが、
それにしても結果が残らなさ杉です。
444SE:2001/06/25(月) 23:48
Cobolがさいこー

俺の経歴は、汎用機だけで20年。
仕事くれー。
445デフォルトの名無しさん:2001/06/26(火) 00:00
C言語[C89] (*funcp)(3)
Lisp[Scheme] (funcp 3)
446デフォルトの名無しさん:2001/06/26(火) 00:01
442=443
煽ってるつもりなのかなあ・・
447デフォルトの名無しさん:2001/06/26(火) 00:09
perlとはいわないけど、正規表現が標準で付いたらいいね。
448デフォルトの名無しさん:2001/06/26(火) 01:02
>>446
ちゃっかり凄腕ハッカーがよってたかって愛用とか言って誉めているから、
きっと彼はLisp信者だろう。
449デフォルトの名無しさん:2001/06/26(火) 17:41
>>448
いや、Emacs信者だろう。
450デフォルトの名無しさん:2001/06/27(水) 04:04
汎用性と速度と保守性と再利用性の最適バランスは
時代によって変わる。
いま最も旬なのはObject Pascal(C#を含む)かな。
451デフォルトの名無しさん:2001/06/27(水) 05:10
>>450
C# is_a ObjectPascalなのか?
せいぜい親戚関係のいとこなのでは?
452デフォルトの名無しさん:2001/06/27(水) 06:59
C#って速いの?汎用性も疑問だけど>450
453デフォルトの名無しさん:2001/06/27(水) 10:10
さまざまな形式的言語を検討したが、本仕様を記述するには
自然言語を採用することに決定した。
-- PofO --
454デフォルトの名無しさん:2001/06/27(水) 19:31
lispは見づらいのでforthがいい。
455デフォルトの名無しさん:2001/06/27(水) 20:03
どれも最低
456デフォルトの名無しさん:2001/06/27(水) 20:08
>>455
半分同意
457デフォルトの名無しさん:2001/06/27(水) 23:38
言語の背後にある思想を勉強してると、あんまり同意できん。
非常に頭を使って言語設計がなされてるのを知ってるから・・・
458:2001/06/28(木) 00:39
やっぱり、最高の言語は、Adaでしょう
459デフォルトの名無しさん:2001/06/28(木) 00:51
言語の良し悪しを決めるファクターはいろいろあるだろうけれど、
個人的に興味があるのは、標準コンテナの整備具合。

C言語は固定長配列しかコンテナがないから問題外として、
JavaやC#はコンテナが型安全でないところに不満がある。
今のところC++しか俺の期待を満たしてくれるものは知らない。
ところでDelphiにはコンテナがあるの?
ずっと前から気になっていたんだけど、誰か教えて。
460デフォルトの名無しさん:2001/06/28(木) 01:22
>>459
Javaはそのうち標準でGenericサポートになるよ。
JDK1.5かららしい。
461デフォルトの名無しさん:2001/06/28(木) 02:49
数少ない Dylan 実装の一つ

Gwydion Dylan
http://www.gwydiondylan.org/
462デフォルトの名無しさん:2001/06/28(木) 03:29
エレガントなPASCALが好き
463デフォルトの名無しさん:2001/06/28(木) 03:45
Prolog
464デフォルトの名無しさん:2001/06/28(木) 03:45
PASCALが生き残ってるのはBorlandのおかげ
465デフォルトの名無しさん:2001/06/28(木) 03:48
Prologが死んだのはBorlandのせい
466デフォルトの名無しさん:2001/06/28(木) 03:54
>>465
何じゃそりゃ…
467デフォルトの名無しさん:2001/06/28(木) 03:55
Turbo Prolog
468デフォルトの名無しさん:2001/06/28(木) 05:54
Prolog Builderできたとしても、使う人がいるのだろうか...
469デフォルトの名無しさん:2001/06/28(木) 12:10
Pythonも捨てがたい。エレガントの一言に尽きる。
HSPみたいにスパッとEXEを作れりゃ、なお良いけど。
470デフォルトの名無しさん:2001/06/28(木) 23:49
>>467
そんなのあったのかぁ
471デフォルトの名無しさん:2001/07/12(木) 14:04
http://www.bagley.org/~doug/shootout/
いろんな言語のベンチマーク。

速度とメモリ消費量はやっぱCが強いね。
コード量は、少なければいいわけでもないような。
全体的には以外(?)とOcamlが強い模様。
472(・Θ・)ノチー:2001/07/12(木) 14:55
mltonも意外に。
473デフォルトの名無しさん:2001/07/13(金) 00:21
>>471
そこのC++のソースひどすぎ。
Cのソースを元に、出力だけcoutに変えただけで、
クラスも仮想関数もテンプレートも全く活用してなくて、
これがC++の実力だと思われたらかなわん。
474デフォルトの名無しさん:2001/07/13(金) 01:19
>>471

http://www.bagley.org/~doug/shootout/bench/matrix/matrix.g++
そこのサイトにあるソースのあまりにひどさにショックだったので
ちょっと書き換えてみた。

#include <iostream>
#include <vector>
#include <stdlib>

using namespace std;

class CMatrix
{
private:
 vector<vector<int> > m;
 int m_Rows, m_Cols;
public:
 CMatrix(int rows, int cols);
 void Clear();
 friend CMatrix operator*(const CMatrix &m1, const CMatrix &m2);
 friend ostream& operator<<(ostream &o, const CMatrix &m);
};

int main(int argc, char *argv[]) {
 int n = ((argc == 2) ? atoi(argv[1]) : 1);
 const int size = 30;

 CMatrix m1(size, size), m2(size, size), mm(size, size);
 for (int i = 0; i < n; i++) {
  mm = m1 * m2;
 }
 cout << mm << endl;
 return EXIT_SUCCESS;
}
475474:2001/07/13(金) 01:19
続き。

CMatrix::CMatrix(int rows, int cols)
: m_Rows(rows), m_Cols(cols), m(rows)
{
 int count(1);
 for (int i = 0; i < rows; i++){
  m[i].resize(cols);
  for (int j = 0; j < cols; j++) {
   m[i][j] = count++;
  }
 }
}

void CMatrix::Clear()
{
 for (int i = 0; i < m_Rows; i++)
  for (int j = 0; j < m_Cols; j++)
   m[i][j] = 0;
}

CMatrix operator*(const CMatrix &m1, const CMatrix &m2)
{
 //assert(m1.m_Rows==m2.m_Rows && m1.m_Cols==m2.m_Cols);
 CMatrix result(m1.m_Rows, m1.m_Cols);
 for (int i = 0; i < m1.m_Rows; i++) {
  for (int j = 0; j < m1.m_Cols; j++) {
   int val = 0;
   for (int k = 0; k < m1.m_Cols; k++) {
    val += m1.m[i][k] * m2.m[k][j];
   }
   result.m[i][j] = val;
  }
 }
 return result;
}

ostream& operator<<(ostream &o, const CMatrix &mm)
{
 return o << mm.m[0][0] << " " << mm.m[2][3] << " " << mm.m[3][2] << " " << mm.m[4][4];
}
476デフォルトの名無しさん:2001/07/13(金) 16:20
君たちの頭の中はもうすこしなんとかならんのか?
477デフォルトの名無しさん:2001/07/13(金) 18:32
たしかにひどいな。
478schemer:2001/07/13(金) 22:42
括弧は、気を付けて書けばそんなに増殖しないよ。
逆に、インライン展開しまくって、括弧、ネストの嵐にすることもできるけど。
コードの最適化方法をユーザー側で簡単に追加/変更できるのは魅力だと思う。
処理系が小さいから自作&組み込みが比較的楽だし。
書いてて楽しい言語だよ。
479デフォルト:2001/07/14(土) 02:19
やっぱ、Adaかな
480デフォルトの名無しさん:2001/07/14(土) 02:25
Adaの良い点って何よ>479
481デフォルトの名無しさん
最高の言語といったら日本語しかないだろ。
日本語>>>>>>>英語>ちょん語
ってところか