現在ある言語の中でどれが最高?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG宗教論争ですよ。
くだらないですよ。
無意味ですよ。
でもまあいいでしょ?
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006o
NGNGwindowsだったらdelphi>>>>>visualc++だと思う。
0007米国防総省
NGNG0008デフォルトの名無しさん
NGNG0009マシン語
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGどんな人間も最後は死体になりますが
死体が人間として最高なわけありません。
0012母国語
NGNG0013デフォルトの名無しさん
NGNG多くの宗教は魂みたいなのを仮定して死後を最高と言ってみるけどな
0015デフォルトの名無しさん
NGNGじゃあ今すぐ死後の世界にいけ
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG最近schemeが最高に見える。>1
処理系がへぼいと遅いけど。
0018デフォルトの名無しさん
NGNGネタ?
0019デフォルトの名無しさん
NGNGいえいえ彼らは本気です。
信仰とはそういうもんです。
0020デフォルトの名無しさん
NGNG>>>>C++
0021デフォルトの名無しさん
NGNG君は名医だ
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG作れない言語は、最高にはなれない。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGcdr!
0026デフォルトの名無しさん
NGNG馬鹿
>>23
微妙
>>25
がんばれLisper
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG勉強したいが〜
書籍在庫切ればかり〜
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGやめとく。自分の好きなのが一番。
0034あなたのうしろに名無しさんが・・・
NGNG大きい書店か、古本屋へどうぞ。
0035デフォルトの名無しさん
NGNG「現在ある言語の中でどれが最高にきれいな言語か?」
に変えさせていただきます。
次回予告、
「現在ある言語の中でどれが最高に汚い言語か?」
003635
NGNGこれにて終了。
0037デフォルトの名無しさん
NGNG何をしたいの?
003835
NGNGまぁ、嫌ならいいやって感じ。
0039デフォルトの名無しさん
NGNG全員逝ってよし。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG俺は?
0042デフォルトの名無しさん
NGNG>>1-38の代表としていわせて貰います。
お前は逝ってよし。
0043デフォルトの名無しさん
NGNGLispかぁ…、確かに否定できないところがありますが…
0044デフォルトの名無しさん
NGNG白々しいぞ。
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNGこうなると思ったよ。
0047デフォルトの名無しさん
NGNGLisp系最強 -> Scheme (美しさと自由度の高さではNo.1)
ML系最強 -> Objective CAML (実装が優れてる)
FP系(?)最強 -> Heskell (HaskellはML系?)
OOP系最強 -> Eiffel (実装の完成度が高くなればSatherか?)
最強といったらやはりHaskellかな。
しかし、私はFORTRANプログラマー(涙)
0048>>35
NGNG>「現在ある言語の中でどれが最高に汚い言語か?」
VBとHSPの二大巨頭を凌ぐものがあるかどうか?
0049デフォルトの名無しさん
NGNGOcamlねぇ……
SMLのが優れてると思うのだがなぁ
0050デフォルトの名無しさん
NGNGDelphiのほうがいいの?
Delphiって上級者向け?
0051ダザイ
NGNGCOBOLとかいってみる
0052デフォルトの名無しさん
NGNGC++買う?
VC++?
そんなもの買わないでg++使え。
0053初期不良
NGNGこれってどうなの?
0054デフォルトの名無しさん
NGNGModulaのこと?
0055デフォルトの名無しさん
NGNG確かにCOBOL処理系って最高(最も高い)
0056デフォルトの名無しさん
NGNGとりあえずオールマイティなところでC言語かな?
0057デフォルトの名無しさん
NGNGこのスレ初登場(笑
僕もCは結構いいかと。
でも最高じゃないな。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG人気を博すものではないなと思う。
両方とも兼ね備えたもので言えばJava, C#かな。
0062デフォルトの名無しさん
NGNGこれが現実だよ。
0063デフォルトの名無しさん
NGNGアホでも使える言語があるとしたらそれはそれで素晴らしいものだと思うぞ。
問題なのはMSがアホなことだと思うぞ。
0064久保晶彦
NGNG0065デフォルトの名無しさん
NGNG本当に最高なんだな?
0066久保晶彦
NGNG/ ̄ ̄ ̄ ̄ ̄ ミ
/ ,――――-ミ
/ / / \ |
| / ,(・) (・) |
(6 つ |
| ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| /__/ / < なわけねえだろ!
/| /\ \__________
0067デフォルトの名無しさん
NGNGMSに入れるのは相当の実力者か高学歴者。
少なくともお前よりは頭がいい。
0068デフォルトの名無しさん
NGNGあほでも使える処理系が不要になる世の中をみんなで作るべきだと思う。
0069デフォルトの名無しさん
NGNG・あほが処理系を使おうとしなくなるような世の中ってこと?
・全てのあほをスキルアップさせてあほじゃなくするってこと?
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072全国の坂田さんへ
NGNG0073デフォルトの名無しさん
NGNG0074ムネヲ
NGNG0075デフォルトの名無しさん
NGNGけど厨房すか・・・?やぱCとかがいいんすか?マジレスきぼんす
0076中途半端くん
NGNGマジレス。
JAVA でもいいと思います。
C も当分の間はバリバリの現役でしょう。
でも、本当に大事なのは、3つ。
創造する心。 論理的な思考。 打算。
0077デフォルトの名無しさん
NGNG「最高」かどうかはともかく、「最強」は Lisp という主張らしい。
0078ラスプーチン
NGNG愛の景色だよ!愛の景色!
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG(当然自己記述で)整備された Lisp 系言語+VMって何か
ないのかなあ。
昔から欲しいんだけど。
0082デフォルトの名無しさん
NGNGschemeなら色々目撃しますよ、そーいうの
VMに直すってことはコンパイラがある処理系って事ですか?
tk使ったやつとか。
LISPは知りません。xyzzyとかは?
0083デフォルトの名無しさん
NGNG008475
NGNGうおーん、なんか安心しました、ありがとう
さあ勉強するぞ
0085デフォルトの名無しさん
NGNGhttp://www.borland.co.jp/delphi/nbpwnt2.html
0086PL/I
NGNGProgramming Language NO.1 !
0087デフォルトの名無しさん
NGNGWinアプリならツールはVC++使う。
0088デフォルトの名無しさん
NGNGSymbolicsのLispマシーンを何とかして手に入れなされ。
VMどころかLisp専用プロセッサだよ。
しかしMacIIfxに載せてた MacIvory(Macの拡張ボードとして動く
Lispマシン)の速度が、そのfx上のMac Common-Lisp に負けたのは
悲しかった。
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG最強の関数型言語。
Winでゲームも作れる。
http://www.cs.kun.nl/~clean/
0092デフォルトの名無しさん
NGNG駄目だとなぁ。
0093デフォルトの名無しさん
NGNG>Winでゲームも作れる。
んなもんWndowsのインタフェースがあればどんな言語であれ作れるだろ。
0094デフォルトの名無しさん
NGNGそれが無い言語ばかりなんだよな。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG0097無責任な名無しさん
NGNG明らかに から って意の表現じゃないけど
最強の理由の一端にゲームをいれること自体をなんだかなぁ…
と思ってしまうのはゲームに偏見があり過ぎなのでしょうか…
0098デフォルトの名無しさん
NGNG0099名無しのアルゴリズム
NGNG誰がなんと言おうと現在ある言語の中で最高なのは
「竜++」だろ?
0100デフォルトの名無しさん
NGNGライブラリの実装は充実していますね。実用度では、Haskellの
上をいくかもしれない。だけどproprietaryな言語が生き残れる
のかな。Mirrandaの二の舞になりそうな気がする。
0101デフォルトの名無しさん
NGNG他は存在価値が無い。
0102騙りの1がいる様ですが、無視してください。(本物の1より)
NGNGちゃんと変数のスコープとかを取り決めれば必要ないですよね?
変数を持ち回る様であれば、それの破棄はユーザーに委ねると。
gcがあるとbytecodeやnativeに変換しても、gcのロジックだけは
残ってしまう様で・・。
0103デフォルトの名無しさん
NGNGシュミでいじってるんですが、よくできてますよ。
生産性はC++よりも良いとおもいますよ(Pure.
こうしてボクチンはマカーになっていくのであった。
0104デフォルトの名無しさん
NGNGで、AoE RoRはどの言語で書かれてるの?
どーせ知らないんでしょ。
0105デフォルトの名無しさん
NGNG適当なバイナリエディタで開いてみ
0106デフォルトの名無しさん
NGNGなぜなら、それは言語の責任じゃなくて、開発環境の
実装の責任だから。
0107デフォルトの名無しさん
NGNGそうか?
俺は例え最速だったとしても、BASICでAOEを作ろうとは思わないだろうな。
0108デフォルトの名無しさん
NGNG高階関数や無名関数が書けるとか、OOPができるとか、
言語の機能で差別化するの?
0109デフォルトの名無しさん
NGNGだから106はそういう発想なんだが。
>>108
まあ、確かに実装のしやすさとかパフォーマンスの
良し悪しに文法が関わってくることもある。
そういうことなら納得できる。
0110デフォルトの名無しさん
NGNG言語が優れていても、実務で使えない(使われていない)言語なら、
設計者のマスターベーションでしかないと思うのですが。
あと、最強/最高って言ってるけど、
オールラウンダーとして最高って意味でしょうか?
0112デフォルトの名無しさん
NGNGMLやHaskellはPlan 9みたいなもんでしょ。
0113デフォルトの名無しさん
NGNG最高はきれいで結構使える言語。
とりあえず最強はC++かな。
0114デフォルトの名無しさん
NGNG最高はJava
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG負けてないよ。
0117113
NGNGhttp://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
これでも読んだのか?
別にこういうのはケースバイケースだと思うぞ。
0118デフォルトの名無しさん
NGNG>>117の文章には感銘を受けるね。
0119デフォルトの名無しさん
NGNGそれって DirectXとかも整備されてないと無理では?
0120デフォルトの名無しさん
NGNGRoRって?
0121デフォルトの名無しさん
NGNGRm on Root
0122デフォルトの名無しさん
NGNG研究では使われてるらしい。
0123久保晶彦
NGNGギコBASICがいいぞ>おーる
0124デフォルトの名無しさん
NGNG0125lambdaさん
NGNGカッコは3重以上ネストしちゃイカンよー。
4重5重もあたりまえの世界だなんて。。。
0126デフォルトの名無しさん
NGNGプログラム自体がリストになってて、リストをいじる感覚で
プログラム本体をいじれるわけよ。カッコのおかげでね。
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGそれで仕事をする気になれません。
0130デフォルトの名無しさん
NGNG自分の仕事にどの言語を使うか選択できる権限があるの?
うらやましいなぁ。
http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
一応。
0131デフォルトの名無しさん
NGNGそうか?結局はif文もあるし、switchみたいなcondって文もある。
doもあるし、C系と比べて実質的には全然単純じゃないぞ。
確かに「構文」には入らないかもしれないけど。
0132デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=987169286&ls=50
0133デフォルトの名無しさん
NGNGCの関数定義では、絶対に同等のことが出来ないようなマクロって
例えばどんなやつ?
0134128
NGNG実はあまりLisp知らないのだが
Cとかだと
1+2って形とhoge(n)って形なのが
Lispだと
(+ 1 2)や(hoge n)
そのへんが好き。
中置演算子ってものが嫌い(笑
0135デフォルトの名無しさん
NGNG>マクロって参照を使える言語での関数定義とほとんど同じようなもんだろ?
違うだろ。
0136デフォルトの名無しさん
NGNGこちらへどうぞ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987169286&st=197&to=197&nofirst=true
0137デフォルトの名無しさん
NGNG関数の引数に「プログラム」なるものを直接渡せるなら
その通りかもね。
0138デフォルトの名無しさん
NGNGC言語なら関数ポインタを渡すっていう手がありますね。
関数も一応型をもったオブジェクトとして扱えなくもないです。
0139デフォルトの名無しさん
NGNGそんなに無茶なことでもないと思うけど・・。
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;
}
0140デフォルトの名無しさん
NGNGパーサも楽だし、前置や後置ってのはいいと思うんだ。
Lisp、Scheme について言えば、ループをやたら再帰で表現するのが嫌だ。
さらに用いる変数を増やしてまで末尾再帰にするところが。
0141デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=987169286&ls=50
#それにしても・・荒れてますね(w
0142デフォルトの名無しさん
NGNG>変数を増やしてまで
これがどういう意味かわからないけど、
(let loop ()
(loop))
って末尾再帰も書けるよ
0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNGたぶん、どっかの厨房がカッコつけて自分の知ってる名前を挙げただけだろ。
0148名無し
NGNG0149C + + 最 強
NGNG0150C + + 最 悪
NGNG0151デフォルトの名無しさん
NGNGうむ、素人は使用禁止だ。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG0154結論
NGNG0155デフォルトの名無しさん
NGNGおうともさ!Z80アセンブラは世界一!
C3C3hは例外フック置き場!
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG韓国エステのアガシより。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG言語なのかよ
0161デフォルトの名無しさん
NGNG0162ななし
NGNG>155 を受けて68系アセンブラを言っていると思われる。
俺もアセンブラやるならせめて68系がいい。
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG言語の違いによる宗教戦争は始まったのだよ。
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG言語仕様は最高でも処理系の実装が
しょぼければ仕方ないと思うが?
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNGばk(以下略)
0169デフォルトの名無しさん
NGNG0170m4芯で
NGNGsendmail.confという言語(藁
autoconf(わしm4が嫌いなんだな)
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGScheme, Haskell, MLなどの言語を使ったことある?
0173デフォルトの名無しさん
NGNGうんうん、
C++ヲイジョウの言語はないですな。
ヲイジョウって何?
0174デフォルトの名無しさん
NGNGmiswritten
0175デフォルトの名無しさん
NGNG慣れってのもあるけど。
0176デフォルトの名無しさん
NGNG激しく同意。
ついでにRubyも追加。
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGEiffelのいいところ?
Delphiのような MS-Windows用のコンパイラがある。
速い。
静的型付け 動的束縛 静的リンク
コンパイラは
オーバライドされてないメソッドはinlineに
オーバライドされたメソッドはvirtualにする。
継承はpublic継承のみ。
多重継承ができる(同じクラスを複数継承できる)。
総称がある。
演算子オーバーロードができる(演算子フィーチャーという)。
friendに似た?exportというものがある。
オーバーロードができない(Eiffelには必要ない)。
クラス変数がない(なくてもいいと思うけど、あるといいな)。
列挙型がない。
クラスをprimitiveにできる(expandクラスという)
Foo a ... a :expand Foo
Foo* a ... a :Foo
ガーベージコレクタがある。
表明がある。
SCOOPというスレッド機構がある。
動的リンクができる(EDL)。
他言語へのインタフェースがある。
0180デフォルトの名無しさん
NGNGふつー m4 に食わせるソースは *.mc で、作成した設定ファイルは
sendmail.cf だと思う。sendmail.conf ってのは初めて聞いたよ。
0181デフォルトの名無しさん
NGNGと最近思えるようになってきた。病気かな?
0182デフォルトの名無しさん
NGNG最高じゃなく最強か…。
だったら間違ってはないと思うよ。
0183(=゚ω゚)
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG面白みが無い。
0186デフォルトの名無しさん
NGNGもう少し詳しい説明をきぼーん。
0187デフォルトの名無しさん
NGNG確かに言語自体には学術的な香りはないが、
VMまわりとか、Javaを使った研究とかだと結構あるよ。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG>速い。
って、何かと比べてってことだよね?
何と比べて?
0190デフォルトの名無しさん
NGNGメンバメソッド名やメンバ変数名のリネーミングができるでしょう。
サブクラスがスーパークラスのメンバの名前を変更して重複を避ける機能。
これC++に欲しいなぁ。
んでやっぱC++最強。高い自由度と高いパフォーマンスを両立し、
そこそこ高い安全性を備え、現時点で最も使える。
Kylixを使いたいけど、ObjectPascalなんて貧弱な言語使いたくないよ〜。
はやくC++版出ろ。
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGあるのは、最高の環境のみ。
自分が使いたい言語を全てコンパイル(アセンブル)でき、
必要に応じて、それらをリンク&デバッグできる環境が
自分にとっての、最高の環境。
どんなに使える言語でも、一長一短、ありますからね…。(^^;
0193192
NGNG0194192
NGNG0195デフォルトの名無しさん
NGNGに調和してる点とか知名度でしょ。
LispやMLを知ってると、C++は言語的には本当に糞に思えるよ。
0196デフォルトの名無しさん
NGNG安全性もそこそこでしかない。
しかし全体の平均レベルは高い。まぁ悪く言えば、妥協点がうまい。
スキルの高い人がメンバーにいれば間違いなく最強の言語になるものの、
誰も使いこなせないとボロボロになる諸刃の言語。
Javaは言語構造は比較的シンプルだけどLispに比べたら複雑すぎるし、
パフォーマンスも悪く、タイミングクリティカルな業務に向かない。
安全性は言われているほど高くなく、C++よりマシな程度で、
厨房開発者しかいない職場ではメチャクチャなコードが氾濫している。
Lispはコンパイラの作りやすさや感覚的な美しさがあるけど、
ある程度の知恵を持つ人じゃないと使いこなしにくい。
メンテナンス性が悪く、大規模な開発にむいてない。
実用性には大きな疑問が残る。
C言語はパフォーマンスが高く習得も容易だけど、
安全度が致命的なくらい低く、規模が大きくなりすぎると破綻しやすい。
いい言語だけど、オブジェクト指向普及の弊害になるので早く消えるべき。
0197デフォルトの名無しさん
NGNGLispの良さはコンピューターやコンパイラのためのものであって、
人間のためのものではない感じがするんだよね。
0198デフォルトの名無しさん
NGNG何かと比べてというよりC++やDelphiのように実用的な速さという意味です。
>>190
>メンバメソッド名やメンバ変数名のリネーミングができるでしょう。
>サブクラスがスーパークラスのメンバの名前を変更して重複を避ける機能。
>これC++に欲しいなぁ。
そう思います。それと
>コンパイラは
>オーバライドされてないメソッドはinlineに
>オーバライドされたメソッドはvirtualにする。
があると、もっといいなと思います。
Eiffelコンパイラってかしこい。
C++でも可能だとおもんだけど・・・
0199デフォルトの名無しさん
NGNGきれいな言語じゃぁ〜
0200デフォルトの名無しさん
NGNGあえて日本語をあげた理由を述べよ。>>199
0201デフォルトの名無しさん
NGNG(最もではないけど)
0202デフォルトの名無しさん
NGNGまず 「ひらがな」 がいい!
おれはひらがな好きさ。
以下考え中・・・
0203198
NGNG0204デフォルトの名無しさん
NGNG多層型も高階関数もクロージャもラムダ抽象も無いC++が最強?
冗談もほどほどにしてくれ。
0205デフォルトの名無しさん
NGNGhttp://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
まさしく宗教論争だな。
0206デフォルトの名無しさん
NGNGどれも必須とは思えないが??
これらが必須なのはlispだからだろ?
0208デフォルトの名無しさん
NGNG(検索しても関係なさそうなのが沢山引っかかる)
0209ななし
NGNG「人間のためのものではない感じ」
その通りだと思うよ。フリーのLisp系言語はものすごく多いん
だけど、暇な学生が手軽に作れるからね。構造は単純だから。
でも、人間との意志疎通というか、ユーザーインターフェイス
をあまり考えてないよ。
0210デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNGインタプリタ?
0213ななし
NGNGいや、悪い。プログラマを「ユーザー」として見たときの、
理解しやすさと言うか、そんなもの。機械語が最低だけど。
その性質のため、Lisp系が今後もっと脚光をあびることなんてないよ。
数学とかと違って、コンピュータの世界では重要なんだな、それが。
0214デフォルトの名無しさん
NGNG多相型でしょうかねぇ。
でもそれはC++にもあるような気がしますねぇ。
C++のそれとは違うものなのでしょうかねぇ。
0215デフォルトの名無しさん
NGNG動的なコード生成があるととてつもない生産性を得られることがある。
つうわけでperl最強と。
0216デフォルトの名無しさん
NGNGlispのように基本的に(導入しようとしない限り)型の無い言語は
テンプレートが初めから基本的に使われているのと一緒だよ。
0217デフォルトの名無しさん
NGNG同じじゃないよ。
テンプレートは汎用性と厳密な型安全を高いレベルで両立している。
形無し言語のそれは、型安全がごっそり抜け落ちている。
0218デフォルトの名無しさん
NGNGでも汎用性はテンプレートより上。
あと、LISPは動的ながらも型ありに出来るし、MLやHaskellは静的に
強く型付けされた言語だから完全にC++のテンプレートより上。
0219デフォルトの名無しさん
NGNG型無し言語じゃねえっての! ヴォケ氏ね。
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG>でも汎用性はテンプレートより上。
これについてもう少し詳しく(理由を)聞きたいです。
0223デフォルトの名無しさん
NGNG理解できないのは単にキミの考えが浅いからだよ(w
それか、使いもしないでびびってるとかね。
メジャーにならないってのは同意するけど。
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNGComposite構造の汎用コンテナクラスがあったとして、
どんな型でも登録できるとするよね。
そして動物は自分の子供をこのコンテナに格納するとする。
さて、犬が持っている犬用のコンテナに
猫を登録してしまうことができないように、
猫が持っている猫用のコンテナに
犬を登録してしまうことができないように
制限するには、lispではどうするのでしょう?
なおこのコンテナはあくまで汎用的なコンテナで、
サードパーティから市販されている変更不可能なライブラリを使っているものとします。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG>犬が持っている犬用のコンテナに
>サードパーティから市販されている変更不可能なライブラリ
この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 "そんな行動できません" 行動))
))
))
0228デフォルトの名無しさん
NGNG(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))
0229227
NGNGちなみにわたしは>>218ではありません。
0230デフォルトの名無しさん
NGNGテンプレートの場合は、一定の形で使わないといけないだろ?
LispやMLなどの場合、やろうと思ったらどこでも変数の型を
<class T>のTに出来るといったらわかりやすいかな。
0231226
NGNGお、そうきたか。
型安全なコンテナをどう実現するかを見たかったんだけど、
コンテナを隠蔽して、コンテナに届く前に振るいにかけたんだね。
突っ込みたいところはあるけど、設問は満たしているから俺の負けとする。
>>230
一定の形で使えるのがいいんだよ。
膨大な量のコードの間違いをチェックすのが楽になるから。
lisp系の言語は、プログラマーが完全な人間であることを求められる。
>>227のような、型チェックのコードも抜かりなく入れないといけない。
C++系の言語は、プログラマーは不完全な人間だという前提がある。
制約があるから負けているのではなく、制約を課すことができるメリットがあるんだよ。
0232デフォルトの名無しさん
NGNG型があることを忘れないでくれ。
0233デフォルトの名無しさん
NGNG>一定の形で使えるのがいいんだよ。
>膨大な量のコードの間違いをチェックすのが楽になるから。
でも柔軟性は無くなる。
それに、いっちゃなんだが、テンプレートよりもそれが無い
言語の方がすっきりしていてかえってチェックが容易。
0234デフォルトの名無しさん
NGNG>>227のコードを見る限り、
とてもチェックが容易とは思えないんだけど……。
0235デフォルトの名無しさん
NGNGそれは最初の印象だけ。
0236デフォルトの名無しさん
NGNGMLでもファンクタやシグネチャ使ってC++のテンプレみたいな使い方もできるよ。
0237デフォルトの名無しさん
NGNGあれは型演繹するから、普通に全てがテンプレートみたいなものだよ。
ストラクチャはテンプレートというかむしろクラス。
シグネチャ使うのは特定のテンプレートに使う型を必要に応じて
一部に限定できるようなものかな。
0238デフォルトの名無しさん
NGNGファンクタはテンプレートっぽいぞ。
0239デフォルトの名無しさん
NGNGテンプレートの代用になる。
0240デフォルトの名無しさん
NGNG型チェックできるわけでしょ?
インタプリタとして同じ土俵に立ったら似たようなもんだと思うけど。
0241デフォルトの名無しさん
NGNGポインタを使った複雑なデータ構造が必要な場合
lisp,プロローグは使えませんよね。
だから、プログラムの本質が計算の場合は、Javaだと思います。
Javaを使えば、さまざまなアプローチで開発する事ができ、
C++よりも、極端にはやく完成させられます。
プロローグやリスプを使うと、JAVAを使うよりも、
非常に簡潔に記述できるケースがたくさんあります。
しかし、JAVAにできて、lisp,prolorgにできない事が存在する以上
(問題解決という意味ではなく、コンピューターの動作の定義)
JAVAを好んで使ってしまうのは仕方ないと思いまます。
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG0244確かに無意味
NGNG0245デフォルトの名無しさん
NGNG詳しい説明を希望。
パフォーマンスや静的動的の違いさえ除けば、lispに出来ないことは何も
ないという印象だから。ちょっと信じられない。
例えば、具体的にどういうコードが書けないの?
サンプルプログラムきぼーん
0246デフォルトの名無しさん
NGNGeqとかの同一性テストプリミティブの立場は・・?
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGprolorgじゃなくてprologだよう。
それと確かにprologはプロローグって単語だが
言語のほうはプロログって発音するほうが普通かと。
0249デフォルトの名無しさん
NGNGデータ構造を扱うのにうってつけ。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGそもそもLispとProlog使ったことあるのか?
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNGは?
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNGケースバイケースなのは確かですが
ポインタを使った複雑なデータ構造が必要な場合
lisp,プロローグは使えませんよね。
だから、プログラムの本質が計算の場合は、Javaだと思います。
Javaを使えば、さまざまなアプローチで開発する事ができ、
C++よりも、極端にはやく完成させられます。
プロローグやリスプを使うと、JAVAを使うよりも、
非常に簡潔に記述できるケースがたくさんあります。
しかし、JAVAにできて、lisp,prolorgにできない事が存在する以上
(問題解決という意味ではなく、コンピューターの動作の定義)
JAVAを好んで使ってしまうのは仕方ないと思いまます。
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNGヒーロー列伝スレッドがほしくなってきたな。
一日1人は観察できる。
0261デフォルトの名無しさん
NGNG今日の出来事スレでも立てるか?(w
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=987231068&ls=100
0264デフォルトの名無しさん
NGNG関連するレスだけを引用した方がいいかも
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987231068&st=219&to=234&nofirst=true
0265デフォルトの名無しさん
NGNG0266241
NGNGなるほど、プロローグはプロログと呼ぶんですか
まあ、プロローグができないデータ構造の例の説明なんて不要ですよね
そもそも、そういう言語でない事が明らかなのは
実際にプログラムを書けばわかりますが
(基本的に、バックトラックを用いた解探索なので・・・)
LISPのデータは基本的にLISTです
(pairと読んでましたっけ?でもってアクセス方法はcarとcdrですね)
よってLIST以外のデータ構造は必然的に使えません
例えば、BTreeの実現もLISPで可能ですが、JAVAで書いた物とは
メモリへのデータ割り当て方法(物理的というよりも方法論で)が違う事は
明らかですよね
と書きましたが、LISPでBSearchする場合って
どんなプログラムになります??
ソース乗っけられると痛いんで、
アルゴリズムお願いします>LISP好きさん
>(問題解決という意味ではなく、コンピューターの動作の定義)
それとも、この書き方がまずかったでしょうか??
一番わかりやすい方法は
LISP→JAVAの変換プログラムは、ちょっとめんどくさいですが、かけますが
というより、LISPのインタープリターはCでかかれてたりして?・・・(笑
JAVA(C)→LISPはかなりきついですよね??
(ちなみに、見た目上同じ動作をするものは可能ですが、コンピューター(VM)に
同じ動作をさせる事は無理です)
0267Java知らず
NGNGポインターやセルを扱える C や Lisp のほうが自然に表現できるような気がしますが…
可変長配列とかじゃないですよね?
0268中途半端くん
NGNGttp://www.mars.dti.ne.jp/~torao/program/structure/btree.html
参考になるかな
0269shige
NGNG0270shige
NGNG0271>267
NGNG可変長配列って、ヒープかなんか想像してる?
Cの扱うセルってなんじゃい?
Java知らずってのは、Java初心者って意味か
ごめん
その程度の事は自分で調べればいいんじゃないかな?
Cのポインタがわかってれば、JAVAの参照の意味も
すぐわかると思うよ。
でも、LISPのセルでB木を書くのは・・・
ちなみに、Vectorって線形リストに変更したって噂を
どこかで聞いた記憶が・・・
0272デフォルトの名無しさん
NGNGJavaのcollection apiだよね?
そんなことはない、実装は配列によるリストだよ。
0273デフォルトの名無しさん
NGNG>配列によるリスト
?
0274デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG線形リストのVectorってどんな意味があるの?
0278デフォルトの名無しさん
NGNG>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が優れていると結論する
ことは出来ないと思うが。
0279デフォルトの名無しさん
NGNGLISPではあれができないこれができないと
決め付けられるのが素晴らしい。
0280デフォルトの名無しさん
NGNG定数時間で要素の挿入ができるとか。
0281デフォルトの名無しさん
NGNGの方が優れていると言ってるのと同じだな。
0282デフォルトの名無しさん
NGNGウマイ
0283デフォルトの名無しさん
NGNGとても小さく実装できるのは魅力だと思う。
0284266
NGNG>lispは必要最低限の機能に絞ると、
>とても小さく実装できるのは魅力だと思う。
私も1回目の書き込みでそのような事を書きました。
>C→アセンブラは出来るが、アセンブラ→Cは出来ないからアセンブラ
>の方が優れていると言ってるのと同じだな。
論法としてはそうですが、
「C→アセンブラは出来るが、アセンブラ→Cは出来ないから」
これは偽ですね
よって、「アセンブラの方が優れている」を肯定する事にならないのは
明らかですね
安易にだまされてはいけません(笑)>282
>ハァ?何言ってるの?LISPには配列もあるし、リストで色々なデータ構造
>を作ることだって出来る。
>>(問題解決という意味ではなく、コンピューターの動作の定義)
つまり、メモリにどのような値が書き込まれるかと言う事です
>はぁ?普通に書けると思うぞ。LISPだから、再帰を使うことになるだろうね。
質問の意図を理解してないと思います
ちなみに、再帰はアルゴリズムとは言わないと思いますし
「LISPだから再帰」
というのも理解できません。
言語の制約から再帰を使わざる得ないという意味でしょうか??
ちなみに、JAVAでも再帰で処理しますが・・・・
知りたいのは、ソースほど具体性はなく、アルゴリズムほど抽象的でない
説明です。
>パフォーマンス
メモリ管理と、実行処理速度の話でしょうか?
私はそこまで詳しく知りませんが、常識的に考えれば
ありえない話だと思いますが。
>もし仮にそうだとしても、LISPからJAVAに変換されたプログラムが
変換可能が意味する事は、記述可能と言う事です。
すなわち、変換不可能というのは、処理を記述できないという事です。
「読みにくさ」という度合いで、あれこれ考えているようでしたら、
見当違いな気がします。
私の書き方も悪かったのかも知れませんが、
(まだ20年しか日本語を使っていないので(笑))
もう一度読んでみてください。
ちなみに、配列があることは知りませんでした。
でも、線形リストはほぼ配列と同じなんで問題はないでしょう。
常にあげといてもらえば、また書き込みにきます。
忙しいので、ちょっと時間があいてしまいそうですが・・・
0285デフォルトの名無しさん
NGNG>つまり、メモリにどのような値が書き込まれるかと言う事です
で?何がいいたいの?JAVAの方がメモリの効率が良いといいたいの?
そうとは思えないが。
>ちなみに、再帰はアルゴリズムとは言わないと思いますし
>「LISPだから再帰」
>というのも理解できません。
>言語の制約から再帰を使わざる得ないという意味でしょうか??
再帰はアルゴリズムの性質を説明する言葉だろ。
LISPは再帰を使うことが簡単に出来るから、多くの場合
使うということ。BSearch程度なら別に使わなくたって
簡単に出来る。
というか、この辺に噛み付いてもしょうがないことだろ。
>ちなみに、JAVAでも再帰で処理しますが・・・・
>知りたいのは、ソースほど具体性はなく、アルゴリズムほど抽象的でない
>説明です
だから、普通に出来るっての。これだけの説明で十分だろ。
説明しろと言われても、普通にやれば出来ることに説明なんて
いるのか?
逆になんで出来ないと思うのかがさっぱりわからん。
>メモリ管理と、実行処理速度の話でしょうか?
>私はそこまで詳しく知りませんが、常識的に考えれば
>ありえない話だと思いますが
ハァ?何がありえないの?
JAVAよりLISPのパフォーマンスが良いということが、常識的
に考えればありえない話なの?(藁
>変換可能が意味する事は、記述可能と言う事です。
> すなわち、変換不可能というのは、処理を記述できないという事です。
>「読みにくさ」という度合いで、あれこれ考えているようでしたら、
>見当違いな気がします。
だから、記述可能をもって、JAVAが優れていると結論することは出来ない
っての。読みにくさや、拡張しやすさ等の要素も考慮しないと。
ていうか、JAVAをLISPに変換する方が難しいなんてどこからそんな
結論が出るんだ?で、そうだとして、なんでJAVAが優れてるんだ?
>ちなみに、配列があることは知りませんでした。
>でも、線形リストはほぼ配列と同じなんで問題はないでしょう
パフォーマンスに違いが出るだろ。
つーか、問題無いならいいだろ。
LISPはリスト以外のデータ構造も余裕で扱える。何も問題無い。
0286デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG激しく同意。
0289デフォルトの名無しさん
NGNG実例を出して比較検討するなら分かる。
また、どういった点において向いているのか向いていないのかも含めてだ。
(記述容易性や可読性など観点は色々あるだろう)
言語仕様によって問題解決のためのアプローチの違いが現れるのは当然であり、
特定用途に特化していない汎用言語であれば、
コード量や記述容易性の違いはあれ同じ事ができる。
*アプローチの違い
LISPではプリミティブなデータ構造であるリストを活用するために再帰を良く用いる。
Javaは手続き型+オブジェクト指向なのでクラスでデータ型を規定し、メソッドでデータを逐次的に操作する。
第一、241氏のいう「できないこと」は不明瞭で意図がはっきりしない。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG>「C→アセンブラは出来るが、アセンブラ→Cは出来ないから」
>これは偽ですね
正気かよ。
0292デフォルトの名無しさん
NGNGやろうと思えば、アセンブラ→Cぐらいできそうだよね。
すごいソースになりそうだが…
0293デフォルトの名無しさん
NGNGCでどうやって特定のレジスタを探すんだ?
0294デフォルトの名無しさん
NGNG同じ処理が出来ればいいのであって
使うレジスタまで一緒の必要はないだろ。
0295デフォルトの名無しさん
NGNGレジスタが違ったら同じ処理にならないだろ。
それとも人工知能でも搭載して同じ処理になるようにするのか?
0296デフォルトの名無しさん
NGNG0297241
NGNG>285
ちょっと、よくわかってないようなので
もう一度読み直してください
>「C→アセンブラは出来るが、アセンブラ→Cは出来ないから」
たしかに、レジスタまで決めるのはきついかも知れませんが、
コンパイラは割り当て規則でももってそうなきもしますが・・・・
でも、私が言いたいのは
メモリの内容であり、演算方法(処理方法)ではない事に注意していただきたいです。
そのレベルで、変換可能という意味では話の筋は通りますよね。
>実例を出して比較検討するなら分かる。
ん〜確かにそうですね。
例えば、LISPもオブジェクト指向で考えてもらうとして
(データをひとまとまりとしてかんがえる)
話を進めますと、
100個のデータをリストorオブジェクトを使って
ひとまとまりにした場合
C,JAVAでは、100個分のメモリ領域を一気に確保するのに対して、
LISPでは、100個のデータをリストで連結します
100個目のデータにアクセスする場合、
C,JAVAでは、メモリアドレスを指定して呼び出す(細かいところはわかりません)
のに対して、
LISPでは、ポインタをたどって100個目のコンスセル(?)まで行かなくては
いけない
(ところで、これをするにはどうしてますか??
100回のループを作って処理をするか?
cdddd・・・・dddrって書きます?
処理的にはどっちが速いのでしょうか??
)
これでは、パフォーマンスのチューニングができない
といいたかったのですが、
実際にLISPには、配列もあるらしいという事で、
もし配列が、データサイズとメモリアドレスを記録するようなものであれば
任意のデータ型が格納できそうですが、
どうなんでしょうか?
ちょっとLISPの記憶が薄れているので、
BTreeとBSearchの例でもどなたか書いてもらえないでしょうか??
>コード量や記述容易性の違いはあれ同じ事ができる
241を見てください
でも、いろいろ言ってきましたが
最良のプログラミング言語は、
(アセンブラはプログラミング言語といえないので考えません)
自分の考えた処理を
一番簡潔に速く書ける事ですよね
皆さんは何が最良だと思ってるんでしょうか?
0298デフォルトの名無しさん
NGNGcdddd・・・・・arですね
0299デフォルトの名無しさん
NGNGアセンブラほど単純でめんどくさくて
それでいて興奮する言語は無かったな。
いまじゃ使いものになんないんだろーな。
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGLISPのベクターは認めない、という事?
0302301
NGNG鬱だ。
0303デフォルトの名無しさん
NGNGアセンブラじゃないと書けないらしいよ。
0304デフォルトの名無しさん
NGNGただの馬鹿だから相手するな。
0305デフォルトの名無しさん
NGNGよくわかってないのはお前。
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
0306301
NGNGなるほど。認めないんじゃなくて知らないのか。
途中から読んでるんで経過を知らなかった。すまぬ。
でもなんでそれで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
0307297
NGNGプログラミング歴1年と2ヶ月という事で勘弁してください(笑
defstruct
は構造体と同じ事なんでしょうか??
LISPインタプリターがどのようにメモリ管理をやっているのかに
興味がわきました。
配列は、どのように実現しているのでしょうか?
Cのようにデータサイズ*要素数のメモリ領域を一気に
確保するというものではなさそうな気もしますが
(PERLみたいな感じですかね)
暇を見つけて、LISP使ってみたいと思います
お勧めのインタプリタなんてあります?(高機能なやつ希望)
xyzzyはエディタとして使ってますが、
印刷する時の設定がいろいろできて得した気分です。
あと、C-x C-sですかね・・・
ちなみに、私はschemeを使っていました。
最近はLINUXがはやってるんで、LINUXでプログラムを書こうかと
思ってるんですが、LINUXで動くLISPなんてのもあるんでしょうかね??
で、結局のところLISPでは自由にメモリを管理できるのでしょうか??
私のLISPの技術ではできませんが、
LISPに詳しい方はできるのでしょうか??
それとLISPのメリットなんてのもあったら教えてください
0308デフォルトの名無しさん
NGNG> ちなみに、私はschemeを使っていました
ネタだろ?ネタだと言ってくれ。
0310デフォルトの名無しさん
NGNG「LISPを教えてください」
に変更になりました。
0311301
NGNGhttp://mitpress.mit.edu/sicp/full-text/sicp/book/node1.html
って事で
■■■■■■■■■■■ 終了 ■■■■■■■■■■■
0312デフォルトの名無しさん
NGNG>Cのようにデータサイズ*要素数のメモリ領域を一気に
>確保するというものではなさそうな気もしますが
そうしてると思う。
scheme使ってるのになぜlispを使う?
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNGjavaでメモリ内での構造まで制御できるわけ?
実装依存なんじゃないのか?
0315デフォルトの名無しさん
NGNGだからただのアホだってば。
0316デフォルトの名無しさん
NGNG(gc使わないlispもあるかもしれないけど。)
メモリ管理についてはあんまし変わらないのでは?
それからlispのvectorは連続する領域取ってます。
0317デフォルトの名無しさん
NGNGそれは実装依存じゃなくて?
(大抵の)JVMだって配列は連続する領域を取っているんじゃないの?
0318デフォルトの名無しさん
NGNG「実装依存」がどういう意味かわかりませんが、
アクセス時間はどの要素を参照しても一定になる筈です。
所で実装は見えなくていいんでは?
「連続する領域」って表現がまずかったですか?
0319デフォルトの名無しさん
NGNGvectorをコピーする場合、インデックス毎にアクセスするだけだから。
ということは、領域は連続していなくても良い?
内部である決まったブロック単位に分割して置くとか。
(gcで断片化されたメモリから連続する空き領域を探索するのは結構コストがかかる)
0320デフォルトの名無しさん
NGNG[[0 1 2 3][5 6 7 8][9 10 11 12][13 14 15 16]]
0321デフォルトの名無しさん
NGNGこの電波な書き込みはまさか…241?
0322319(241ではないです)
NGNG出直してきます。
0323デフォルトの名無しさん
NGNG規定されているとおりに使うことが出来ればいいわけで、
VM内部での処理方法まで規定されているわけではない。
したがって、
>アクセス時間はどの要素を参照しても一定になる筈です。
これは保証されていない
0324デフォルトの名無しさん
NGNGどの辺が電波なんだ?
>C言語のmemcpyに相当する関数は多分無かったと思います。
この辺?
0325shige
NGNG0326241
NGNGただ、方言だから
もっと優れたLISPがあるのかと思ってそういう表現をしました
(もしかして、そういう突込みじゃないとか??)
Schemeにも配列があったのでしょうか?
全てコンスセルでやってました。
>javaでメモリ内での構造まで制御できるわけ?
ポインタわかります??
ポインタのたどり方によって、
データへのアクセス時間が変わってきますよね??
LISPのベクターってのは可変長配列なんですかね〜
連続って事は、サイズが変わるたびに領域を確保しなおしてるんですね
気分的にその動作は結構嫌いだったりするんですよね
でもって、連続領域を確保するという事は、
配列にはアドレスとデータフォーマットがきっと入ってるんですね
LISPにはどんなデータフォーマット(データ型)があるんですかね
ちなみに、javaのgcはlispから勉強させてもらった
物だと本に書いてあったような記憶があります。
個人的には、gcじゃない方が良かったのですが、
それはjavaの設計思想に反しますから仕方ない事ですね
ところで、
「やじ」も慣れると目に入らなくなりますね(笑
目に入る「やじ」は荒らしって言ったりするだけの事かも・・・
「やじ」好きのみなさん、斬新な「やじ」お願いします
ではでは
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNGひょっとして >>325-326 の流れ的に
shige=241ですか?
だったらほんとに病院行った方がいいと思いますが。
0329デフォルトの名無しさん
NGNGいやいや、
>>284
から推測するに、末尾再帰の最適化も知らんらしいぞ?(藁
それとも最近のJavaは末尾再帰の最適化がされるようになってるのか?
0330241
NGNGうっ
知らないです・・・・
末尾再帰ってなんですか?
ついでに、
>241って、"(笑"が多くて水野みたいだ・・・。
も興味あり
>scheme*使ってた*のに配列も知らないとはどういうこと?
どうやって配列作るんですか?
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG処理系のマニュアルや言語仕様書読めよ
0333スレッド"管理人"
NGNG「241です。Schemeについて教えてください。」
に変更されました。
0335デフォルトの名無しさん
NGNG0336335
NGNG0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNGschemeは最も優れたlispです。
schemeより優れたlispがあるならこっちが知りたい。
0339デフォルトの名無しさん
NGNGってことだな(藁
所詮lispってemacsのマクロ言語でしょ?
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG本当にSchemeがCommon Lispより上だと思ってるの?
確かに、Schemeは優れているけど、シンプルすぎて
実用性の点で少し劣ると思う。
ミニマル主義って言うのかな?
それはちょっと違うと思うんだよね。
ifとgotoがあっても、whileやforがあった方が良い
のと同じ。
0347!=338
NGNG実用的には…Lispもどっこいどっこい。Schemeも、
R5RSだけではダメだけど、たいていの実装にはいろんな
関数があるからね。
0348デフォルトの名無しさん
NGNGけなす奴が多いな。無知まるだし。もっとも、おれはVBさわったことないがね。
0349デフォルトの名無しさん
NGNGこれはC言語でいう、環境依存部分の処理系特有のライブラリの様な物から、
CommonlispのCLOSの様な構文拡張や、コンパイラの出力コードの効率を
上げるための明示的型宣言とか。
SFRI(インターネットにおけるRFCの様な物かな?)という拡張仕様まである。
結果的に各処理系間での移植性はそんなに良くないのが現状です。
移植性という観点で見ると、CommonLispの方がまだマシな気がします。
実装が小さくできるのはいいんですが。
(ちなみにCommonLispの仕様満たす実装を1から作るのは大変な手間です。)
0351デフォルトの名無しさん
NGNG標準で定められてるライブラリが少ないので
自分で拾ってくるか、作るか。
使っていくにはそれなりの努力が必要。
0352338と350
NGNG調べました。いろいろあるんだな〜。
lisp1.5とschemeとCommonLispとEmacs-Lisp以外知りませんでした。
人のことは言えません。
>>326の人 すみません。
0353デフォルトの名無しさん
NGNG少しだけSchemeを触った上で批判してる奴もいたようだが。
まあ、無知だったけどな。(藁
0354デフォルトの名無しさん
NGNG現行の有名所って意味では
>schemeとCommonLispとEmacs-Lisp
の3つでいいんじゃない?
0355デフォルトの名無しさん
NGNGしか実装されてない、と昔聞きましたが。
0356デフォルトの名無しさん
NGNGCommonLispを作った時に結構みんな移行したからね。
今から思えば仕様の策定と同時に実装していたKClのおかげかもね。
0358デフォルトの名無しさん
NGNGhttp://www.gnu.org/software/gcl/gcl.html
>GCL supports the CLtL1 specification.
らしい。
0359デフォルトの名無しさん
NGNGつーか、KCl作ってた時は第1版も出版されるかされないかの時期。
XeroxのPCLベースのCLOSの実装ならあるが遅い。
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG構成の自由度と文章表現の多彩さはピカイチ。
難点はキャラクターコードが多すぎること。
0362デフォルトの名無しさん
NGNG難点というか、逆にそれは日本語の利点だろ。
漢字なくなったらよみにくくなちゃうよ。
0363デフォルトの名無しさん
NGNG習得が困難であること。
0364デフォルトの名無しさん
NGNGえっ、Scheme の Denotational Semantics って??可能なの。
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG数学的な関数としてそのまま書けるのが重要なんだと思われ
(de (f n) (f n))
無限ループ(停止条件無し)
(de (f n) (if (= n 0) n (f (- n 1))))
nが0になるまで繰り返す有限ループ
どっちのfも末尾再帰なのでフレームを生成せず上書きする。
前者の上書き n -> nの評価結果
後者の上書き n -> (- n 1)の評価結果
0370B
NGNG0371デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNG0375371
NGNG0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG(display "loop?")
(recursive))
0378デフォルトの名無しさん
NGNGrecursive "Yes."
0379デフォルトの名無しさん
NGNGfor(;;){puts("recursive?");} が再帰か聞いてるんだけど?
それともループじゃない?(藁
0380375
NGNGまあ再帰じゃないけど。
じゃあ再帰関数もループじゃないと思うが?
ツリーをたどる例とかもっと複雑な例を考えればわかると思うが。
ループでも表現出来る、という話なら再帰でも表現出来る、
という話と同じだと思うし。
まあなんで使うの?
という質問をみてなんで使わないの?と感じただけで深い考えが
ある訳じゃないが。
0381デフォルトの名無しさん
NGNGループは再帰なんじゃないのか? < 375
>じゃあ再帰関数もループじゃないと思うが?
意味不明。
0382デフォルトの名無しさん
NGNGデバッガでトレースしずらそう。
0383375
NGNGSICPからのコピペなら、
(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)))
はループ?
0384375
NGNGhttp://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))))
はループ?
0385デフォルトの名無しさん
NGNG再帰にすればいいじゃん。
lispでループ使ったっていいし、Cで再帰使ったっていい。
好みの問題と効率等の適材適所の問題でしょ。
0386デフォルトの名無しさん
NGNG話がずれまくってると思うんですけど。
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNGだから、今の話の方こそずれてると思うんだよ。
ただのいちゃもんの付け合いにしか見えないんだよ。
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGだから何なの?
もともとは再帰の利点は何?って感じの話だったのに。
0391デフォルトの名無しさん
NGNG>再帰はループだとか、いや、そうじゃないとか。
>だから何なの?
Schemeを知ってますか?
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNGその議論がどうでも良さげ。
0394375
NGNG375でいった事には間違いが多く含まれます、すみません。
で、再帰を使う利点、まで話を戻すと、
whileは再帰で実装する事が出来て、再帰で実装できる事でwhileで実装
出来ない事はある。
再帰はいろいろな事が統一的に扱えるのに、わざわざwhileを使う、
というのが何か嫌だ、という感じか?
再帰は帰納的考えがそのままあらわせて楽、というのもある。
もちろんタイプするのが面倒ならwhileというシンタックスシュガーを使えば
いい。
0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNG用語の使い方が微妙におかしい気がする。「〜に対しての」が抜けてる。
「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のシンタックスシュガーと解釈する。
0397デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNGSICP の count-change は樹状再帰で、末尾再帰じゃないからループ
にはならない。これを末尾再帰にするのは結構難しいよ。
0401デフォルトの名無しさん
NGNGすげー保守性悪そうなコードだな。
優れているのかもしれないが、
俺はこれで仕事をしたくない。
0402375
NGNG383はおいといて、384はそんなに保守は悪く無いと思うが。
インデントが無いのでよみづらい、とは思うが。
少なくともテストが簡単に出来る分、Cなんかよりはマシ、
と思うけど。
lambdaがフレーム持ってる、という所がわかりにくいが、
馴れればシンプルで高い表現力が得られると俺は思う。
まあMLの方が読みやすい、といわれると反論する場所は無いが。
俺はこれで仕事がしたいが、会社はVC++(T_T)
0403デフォルトの名無しさん
NGNGで仕事ができる会社ってあるんですか?
0404375
NGNGさぁ?
bitとかではよく使用事例の記事があったし、Webでも使われている、
というページはみるが、求人でScheme募集、ってみた事は俺は無い。
どっかにはそういう会社もあるだろうけど、極めて少数ではあると思う。
0405デフォルトの名無しさん
NGNGあと開発支援とか。
0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNGバイト先はKAWAで開発でしたが、何か?
0408デフォルトの名無しさん
NGNGkawaってJava上で動くschemeでしたっけ?
できればどんな分野の仕事だったのか教えてください。
0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNG実行効率がそれを阻むからか?
scheme->cしてもgc回りは残るからねぇ・・
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGgcが残るだけでも問題なのくわぁ・・・。
0416デフォルトの名無しさん
NGNGつーかgc使ってるやつみんな残る
0417デフォルトの名無しさん
NGNG昔自分で作ったscheme処理系は8割り方文脈&明示的開放で回収出来るようになった覚えがある。
(残り2割は継続で残る環境とschemeコードで明示的開放をしてない部分。)
0418デフォルトの名無しさん
NGNG括弧(・∀・)イイ!からでしょ
0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNGJVMのGCは、なんか進化していってるみたいだよ。
フル(ゴミ一斉掃除)GC→
インクリメンタル(ちょっとずつ)GC→
コンカレントGC(GC用スレッド並列常駐)→
パラレルGC(別CPU同時実行)(オイオイ、ホントカヨ…)
0421デフォルトの名無しさん
NGNG大規模なプログラムに対して型無しなのが致命的なのでは。
0422デフォルトの名無しさん
NGNG>パラレルGC(別CPU同時実行)(オイオイ、ホントカヨ…)
何か問題あるのか?
0423デフォルトの名無しさん
NGNG近親憎悪の罵り合いきぼ〜ん。
でも煽りじゃないよ。本当に知りたいのだ。
0424デフォルトの名無しさん
NGNGでもHakellとMLは近いのかな?
0425デフォルトの名無しさん
NGNG型無し、つーかインタプリタだからなんじゃ?
型有りにしようと思えばできるし。
0427デフォルトの名無しさん
NGNG'記号がわかりにくく、マクロやラムダ関数の定義が読みに
くいからでしょ。
静的な型が無いのも一因かな。
Dylanは良い言語みたいだけど、appleがDylan関係の
プロジェクトを打ち切ってしまったらしい。
0428デフォルトの名無しさん
NGNGquoteも判らんかった様な奴に何言っても無駄だとは思うけどさ。
0429デフォルトの名無しさん
NGNGそれって敷居が高いと自ら認めているようなものだ。
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNGやってみようと思う人が少ないのがイカンのかと。
0432デフォルトの名無しさん
NGNGSchemeと違って静的な型があったようだし、普通の書き方をする。
0433デフォルトの名無しさん
NGNGLOGOは "ABC
Smalltalkは #ABC
0434訂正
NGNGLOGOは "ABC
Smalltalkは #ABC
0435デフォルトの名無しさん
NGNG( ) が大量発生してる、ださださ言語は逝って良し!!!
C++さいこー・・・
GCは羨ましいけど・・・
0436デフォルトの名無しさん
NGNGC言語 f(x y)
lisp (f x y)
括弧の数は変わりませんが?
0437デフォルトの名無しさん
NGNGC言語 3 + 4
Lisp (+ 3 4)
0439435
NGNGインタプリタは問題外だろと思うけど。
実行速度なんてものは、CPUの速度でなんとかなるんだよな・・・
っていうかperlみたいにコンパイラあるのかな?
それよりも end っていうのかダサい気がするなぁ。
直感的ぢゃないっていうか、うーん。
{ } じゃまずかったんだろうか・・・
それ以外は(・∀・)イイ!!と思うヨ。
ちゃんと解ってる人が書けば、
C++はそんなに悪い言語じゃないと思う・・・
0440アーヒャヒャヒャヒャヒャヒャヒャ・
NGNG0441デフォルトの名無しさん
NGNGプログラムをファーストオブジェクトとして扱えないダサダサ言語は逝って良し。
0442デフォルトの名無しさん
NGNGアプリを作れない言語に利点なんかあるの?
エディタなんかじゃなくてさ、ワープロ、DTP、
表計算、ブラウザ、なんでもいいから見せてみろよ。
どうせ、テキストベースの腐ったインターフェイスのものを
作るのが関の山だろう?
ぷ。ダサダサ言語って当然lispのことだよね?
VBは大嫌いだけど、lispよりかはまだマシだな。
0443デフォルトの名無しさん
NGNG何も生み出されない糞言語lisp。
ソフトが作れりゃいいってもんじゃないが、
それにしても結果が残らなさ杉です。
0444SE
NGNG俺の経歴は、汎用機だけで20年。
仕事くれー。
0445デフォルトの名無しさん
NGNGLisp[Scheme] (funcp 3)
0446デフォルトの名無しさん
NGNG煽ってるつもりなのかなあ・・
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGちゃっかり凄腕ハッカーがよってたかって愛用とか言って誉めているから、
きっと彼はLisp信者だろう。
0449デフォルトの名無しさん
NGNGいや、Emacs信者だろう。
0450デフォルトの名無しさん
NGNG時代によって変わる。
いま最も旬なのはObject Pascal(C#を含む)かな。
0451デフォルトの名無しさん
NGNGC# is_a ObjectPascalなのか?
せいぜい親戚関係のいとこなのでは?
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG自然言語を採用することに決定した。
-- PofO --
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG半分同意
0457デフォルトの名無しさん
NGNG非常に頭を使って言語設計がなされてるのを知ってるから・・・
0458ぴ
NGNG0459デフォルトの名無しさん
NGNG個人的に興味があるのは、標準コンテナの整備具合。
C言語は固定長配列しかコンテナがないから問題外として、
JavaやC#はコンテナが型安全でないところに不満がある。
今のところC++しか俺の期待を満たしてくれるものは知らない。
ところでDelphiにはコンテナがあるの?
ずっと前から気になっていたんだけど、誰か教えて。
0460デフォルトの名無しさん
NGNGJavaはそのうち標準でGenericサポートになるよ。
JDK1.5かららしい。
0461デフォルトの名無しさん
NGNGGwydion Dylan
http://www.gwydiondylan.org/
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNG何じゃそりゃ…
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGHSPみたいにスパッとEXEを作れりゃ、なお良いけど。
0470デフォルトの名無しさん
NGNGそんなのあったのかぁ
0471デフォルトの名無しさん
NGNGいろんな言語のベンチマーク。
速度とメモリ消費量はやっぱCが強いね。
コード量は、少なければいいわけでもないような。
全体的には以外(?)とOcamlが強い模様。
0472(・Θ・)ノチー
NGNG0473デフォルトの名無しさん
NGNGそこのC++のソースひどすぎ。
Cのソースを元に、出力だけcoutに変えただけで、
クラスも仮想関数もテンプレートも全く活用してなくて、
これがC++の実力だと思われたらかなわん。
0474デフォルトの名無しさん
NGNGhttp://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;
}
0475474
NGNGCMatrix::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];
}
0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG0478schemer
NGNG逆に、インライン展開しまくって、括弧、ネストの嵐にすることもできるけど。
コードの最適化方法をユーザー側で簡単に追加/変更できるのは魅力だと思う。
処理系が小さいから自作&組み込みが比較的楽だし。
書いてて楽しい言語だよ。
0479デフォルト
NGNG0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG日本語>>>>>>>英語>ちょん語
ってところか
■ このスレッドは過去ログ倉庫に格納されています