- 1 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 22:29:34.63 ]
- 最強のLL=軽量プログラム言語は、どれよ?
エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・ さあ、死ぬまで語りやがれ!!! ■LLとは? 軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、 コードの作成や修正が容易と見なされるプログラミング言語のことを指す。 ここでいう「軽さ」はプログラマの負担の軽重を指し、 実行速度に優れているという意味ではない。 現在の水準では ・インタプリタ ・動的型 ・正規表現 ・クロージャ などを利用できるものがLLと呼ばれることが多い。(Wikipediaより) 前スレ 【Perl,PHP】LLバトルロワイヤル20【Ruby,Python】 toro.2ch.net/test/read.cgi/tech/1326341657/
- 39 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 01:36:33.12 ]
- ->の右側に引数を書くのは何かの冗談なんだよね?
HaskellやMLと意味も無く違っててキモイ
- 40 名前:8 mailto:sage [2012/02/28(火) 16:01:08.16 ]
- >>39
2点、反論する まずHaskellやMLの中置演算子 -> は、型式の中だけで定義されている つまり「値の式」と(「型の式」である)型式をごっちゃにした指摘 >>29 はトンチンカンと言える 実際、Standard MLの「値の式」では前置のラムダ構文 fn が使われるし、 Haskellにいたっては、¥記号(バックスラッシュ)というRubyと同様な記号が使われている 【Standard ML(SML/NJ)での実行例】 - (fn x => x + 1) : int -> int; (* コロンの左辺が「値の式」、右辺が型式 *) > val it = fn : int -> int 次に、すでに>>35で書いたけど、短縮記号の右矢印がキモイ(=不慣れなので読みづらい)のであれば、 Ruby 1.8 の(冗長だけど初心者には優しい)lambda記法を使う事もできる(要は、「慣れ」の問題) t = lambda { |f, x| f[f[x]] }.curry x = t[t][t][t][lambda { |x| x + 1 }][0] 結果としてRubyでは、>>8,23,35 そして上記コードという、 プログラマの慣れ/熟練度/用途等に応じた4通りの表現の使い分けが可能になる
- 41 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 17:43:41.36 ]
- >>40
> まずHaskellやMLの中置演算子 -> は、型式の中だけで定義されている > つまり「値の式」と(「型の式」である)型式をごっちゃにした指摘 >>29 はトンチンカンと言える 何言ってんだお前?アホなの? Haskell のラムダ: \x -> x OCaml のラムダ: fun x -> x
- 42 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 00:50:16.18 ]
- 【消しゴム】MONOを使ってみるスレ4【じゃない】
toro.2ch.net/test/read.cgi/tech/1329023778/
- 43 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 04:39:19.32 ]
- おまえらruby信者とpython信者の争いは、10年も前にperlが踏襲した道だ
- 44 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 04:49:47.26 ]
- こうした議論みてると演算子の優先順位とリテラルが
開発効率の邪魔をしているようにさえ思えてくるので、 さっさと人類は言語設計のほとぼりに冷めて、 schemeに統一されちまえとさえ思えてくる てか、それ他の実装でも動くの?
- 45 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 08:01:27.20 ]
- lambdaだ、Yコンビネータだいうヤツらをプロジェクトに
寄せ付けないためだけであっても、tclを利用する十分な理由になる
- 46 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 08:48:40.69 ]
- Tcl8.5にあるapplyはlambdaみたいなもんだろ
- 47 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 17:53:55.18 ]
- Shemeよくわからんけど
ネットで調べながら書いてみた (define (t f) (lambda (x) (f (f x)))) (((((t t) t) t) (lambda (x) (+ x 1))) 0)
- 48 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 17:54:54.13 ]
- Schemeのスペル間違えた
- 49 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 22:51:17.74 ]
- 2→4→16→次は何?
であの数になるってやつだな この前それがどう展開されていくか考えてた
- 50 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 17:59:57.93 ]
- Perl5ではこうだろうか?
$t = sub{my $f = shift; sub{my $x = shift; $f->($f->($x))}}; $t->($t)($t)($t)(sub{my $x = shift; $x + 1})(0);
- 51 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:41:55.32 ]
- $$$$$$$$$$$$$$$$$$$$$$$
- 52 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 19:12:09.59 ]
- 例によってちょろっとネットでマニュアルとか調べただけで
Common Lisp版を書いてみた あってるのだろうか?いちおう65536になるけど なんかtが組み込みの真値らしいのでaで (let ((a (lambda (f) (lambda (x) (funcall f (funcall f x)))))) (funcall (funcall (funcall (funcall (funcall a a) a) a) (lambda (x) (+ x 1))) 0)) 対応括弧の表示をしてくれるエディタじゃないと大変なのが よくわかった
- 53 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 21:24:26.60 ]
- letの代わりにlabelsを使ってみたけれど、あまり変わらなかった。
(labels ((a (f) (lambda (x) (funcall f (funcall f x))))) (funcall (funcall (funcall (funcall (a #'a) #'a) #'a) (lambda (x) (+ x 1))) 0)) こういうときはSchemeとCommon Lispの関数・変数の名前空間の違いが強調されるなあ。
- 54 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 21:48:43.06 ]
- 糞スレ
- 55 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:02:10.33 ]
- これで勝つる(´・ω・`)
PHP 5.4 がついにリリース ― Web を高速に! japan.internet.com/webtech/20120302/2.html
- 56 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 01:38:26.90 ]
- January 9, 2012: Extensibility support using Guile
www.gnu.org/software/gdb/
- 57 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 18:43:09.18 ]
- Luaで書いてみた
t = function(f) return function(x) return f(f(x)) end end t(t)(t)(t)(function(x) return x+1 end)(0)
- 58 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 22:37:00.46 ]
- schemeが一番分かりやすい。rubyが一番糞。
- 59 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 08:09:59.27 ]
- いまだにこんな>>28うんこパーサ使ってるRubyって...
|

|