1 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 11:03:24 ] 最強のLL=軽量プログラム言語は、どれよ? エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・ さあ、死ぬまで語りやがれ!!! ■LLとは? 軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、 コードの作成や修正が容易と見なされるプログラミング言語のことを指す。 ここでいう「軽さ」はプログラマの負担の軽重を指し、 実行速度に優れているという意味ではない。 現在の水準では ・インタプリタ ・動的型 ・正規表現 ・関数オブジェクト などを利用できるものがLLと呼ばれることが多い。(Wikipediaより) ■過去スレ 【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】 pc12.2ch.net/test/read.cgi/tech/1244166510/ 【Perl,PHP】LLバトルロワイヤル5【Ruby,Python】 pc12.2ch.net/test/read.cgi/tech/1238720336/ 【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】 pc12.2ch.net/test/read.cgi/tech/1234635513/ 【Perl,PHP】LLバトルロワイヤル3【Ruby,Python】 pc11.2ch.net/test/read.cgi/tech/1215319832/ 【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】 pc11.2ch.net/test/read.cgi/tech/1209289408/ 【Perl,PHP】LLバトルロワイヤル【Ruby,Python】 pc11.2ch.net/test/read.cgi/tech/1188997302/
4 名前:デフォルトの名無しさん [2009/07/25(土) 12:59:52 ] これはハスケルを締め出そうという陰謀のスレね…こわい
5 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 13:30:52 ] >>4 >>3 のLispのところをハスケルに置き換えてください。他の言語も同様です。 マイナーな言語を使う人は劣等感から妄想を抱きがちですが決してそういう意図は ありませんのでご了解をお願いします。 では、死ぬまで語りやがるよう お願いします。 なお私は1ではありません。でしゃばってすみません。
6 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 14:50:02 ] D言語はLLですか?
7 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 15:03:28 ] いえ、ダメ言語です
8 名前:デフォルトの名無しさん [2009/07/25(土) 15:07:58 ] LLは lua & Lisp の事です D言語は入る余地無しです
9 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 16:19:24 ] え、Lispに一番近いとまで言われたPythonってなんだったの
10 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 17:09:12 ] Lispに近いって、どういう事? おままごとか、せいぜいCADのマクロぐらいにしか使えないって事?
11 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 17:28:25 ] 関数に関数を渡したり、関数の中で関数を定義したり、関数が関数を返したりする事。 大雑把に言えばLispに近いほどJavaから遠くなる傾向がある。
12 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 17:35:16 ] 他にLispっぽいとか言われるのは、JavaScriptとかRubyとか 基本的には褒め言葉 強力なリストであったり、高階関数であったり、GCであったり パワーのある言語だねって
13 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 17:37:47 ] 関数系は遅延評価が(どういう風に使えばいいのかが)よくわからない。
14 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 17:59:07 ] Javaだってインナークラス使えば同じことができるぞ。
15 名前:デフォルトの名無しさん [2009/07/25(土) 18:01:05 ] 高階関数は使い出すとクセになるな Lisp使うとjavaは要らんとつくづく思うよ
16 名前:デフォルトの名無しさん [2009/07/25(土) 19:13:09 ] pythonやrubyで√2の小数点以下100桁を求めるとしたらお前らどうよ?
17 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 19:14:14 ] いい感じだよ。
18 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 19:32:42 ] Python >>> from decimal import Decimal, getcontext >>> getcontext().prec = 101 >>> Decimal(2).sqrt() Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732 4784621070388503875343276415727')
19 名前:デフォルトの名無しさん [2009/07/25(土) 19:57:38 ] まだやんの? 最強は機械言語でいいじゃん
20 名前:デフォルトの名無しさん [2009/07/25(土) 20:01:42 ] import使われるとなんかズルされた気がするよ。
21 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 20:41:18 ] √2 = r と置いてみる ↓ (r * 10^100)^2 = r^2 * 10^200 ≒ 2 * 10^200 となる整数 (r * 10^100) を探してみる ↓ (r * 10^100) / 10^100 がたぶん求める答え ひょっとすると 10^101 かもしれないがそれは後で検証
22 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:22:55 ] >>> def r2(m): ... p = 2*10**m ... for i in xrange(p): ... if (p-3)*10**m <= i*i and i*i <= (p+3)*10**m: ... print i ... >>> r2(4) 14142 14143 >>> r2(5) 141421 141422 >>> r2(6) 1414213 1414214 >>> r2(7) 14142135 14142136 遅いわwww
23 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:32:40 ] >>> r2(100) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in r2 OverflowError: long int too large to convert to int
24 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:36:15 ] このスレもレベル下がったな 糞スレ決定だろ
25 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 22:44:23 ] みんな!民主党が大変な事になってるよ。 www.nicovideo.jp/watch/sm7737318
26 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:14:45 ] 平方根を数値計算するアルゴリズムは意外と簡単だ。 筆算でも算盤でもできる。 ja.wikipedia.org/wiki/%E9%96%8B%E5%B9%B3%E6%B3%95
27 名前:デフォルトの名無しさん [2009/07/25(土) 23:16:08 ] www.jma-net.go.jp/sat/data/web/suneclipse_img/mtsat2_20090722_0900-1400_enhanced.gif
28 名前:デフォルトの名無しさん [2009/07/25(土) 23:38:56 ] √(10+3√(97+56√3))
29 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:53:07 ] 遅延評価って if( hoge() or hogehoge() ) って時に、hoge()がtrueならhogehogeが実行されないってことだしょ? 短絡的に考えれば、hogehoge()を実行しなくていい時ってことでいいんじゃない。 どっちも確実に実行したいなら、ifに掛ける前に代入しておけばいいだけだし
30 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:54:34 ] は?
31 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:57:10 ] ははは
32 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 02:02:22 ] あっ、ごめん 俺おもいっきし間違ってる?
33 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 02:16:56 ] それは短絡評価。
34 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 06:37:03 ] foo( bar() + baz() ) って時に、普通の言語ならbar()+baz()をそれぞれ呼んで計算してから その結果をfoo()に渡すのに対して、遅延評価のある言語だと いきなりfoo()に「bar()+baz()」っていう「式」を渡す んで、bar()+baz()の値が実際に必要になるまでは式のままで評価されない あと、無限リストなんかも扱えたりする (1〜∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する なんて処理がマジで言葉通りに書ける
35 名前:デフォルトの名無しさん [2009/07/26(日) 06:37:40 ] >>22-23 せめてニュートン法くらい使えよw >>> def r2(m): ... p0 = 2*10**m ... p = p0 ... while(not ((p0-3)*10**m <= p*p and p*p <= (p0+3)*10**m)): ... p = (p*p + p0*10**m) / (2*p) ... print p ... >>> r2(4) 14142 >>> r2(10) 14142135623 >>> r2(100) 14142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
36 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 06:54:49 ] 前置記法って何でLispしか無いんかね?
37 名前:デフォルトの名無しさん [2009/07/26(日) 07:01:42 ] >>34 >あと、無限リストなんかも扱えたりする >(1〜∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する >なんて処理がマジで言葉通りに書ける 整数nについて,各桁の数の階乗の和S(n)を考える.たとえば,n = 145 とすると, S(145) = 1! + 4! + 5! = 1 + 24 + 120 = 145 となる.このように,S(n) = n となるn(n≧0)のうち3番目と4番目を抽出せよ. これを遅延評価でおながいします.
38 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 07:19:34 ] ああ、Lispスレの929か。
39 名前:デフォルトの名無しさん [2009/07/26(日) 08:08:24 ] >>37 それ2つしか答えないよ
40 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 08:13:40 ] だいたい、「遅延評価でおながい」って、何をおながいするんだ?
41 名前:デフォルトの名無しさん [2009/07/26(日) 08:40:47 ] 平方根はこんな感じ ↓ (labels ((nxt (x v) (/ (+ x (/ v x)) 2))) (defun sqp (n e) (do* ((x1 n x2) (x2 (nxt x1 n) (nxt x1 n)) (err (expt 10 (- 0 e)))) ((< (abs (- x1 x2)) err) (truncate (* (expt 10 e) x2)))))) > (sqp 2 100) 14142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
42 名前:デフォルトの名無しさん [2009/07/26(日) 08:46:33 ] >>40 ハスケルでお願いっていう意味じゃないの?
43 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 08:51:30 ] >>39 では50番目から100番目まで。 というのはおいといて”マジで言葉通りに書ける”とあるから1−2番目を計算せずに いきなり3番目を取り出せるのだろうな。処理系内部では一所懸命計算やるだろうけど。 >>35 の説明で遅延評価をはじめて知ったんだけど処理系にバグを仕込むために考え出さ れた仕様ではないだろうか。
44 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 09:07:44 ] >>39 4っつだ ぼけ
45 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 09:08:40 ] 「4っつ」って珍しい書き方だな。
46 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 09:11:32 ] >>43 え、もしかして、なんか言質とってツッコミ入れて恥かかせたがってる? 「言葉通りに」というところを取り上げて何か言いたかったら、元の「言葉」を正しく読み取らなきゃダメよ。
47 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 09:26:02 ] よく2chの情報はいい加減とか、正しくない情報が多いとか言われるけど、 僕にとっては大事な情報源です。 たまにはボロクソ言われることもあるけど、みんな親切に教えてくれる。 いつもありがたいと思ってる。
48 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 09:29:47 ] >>46 そんな気はまったくない。>>35 には感謝してるよ。よそで”遅延評価というのはだな・・・” とか言ってみたいほうだから。元の「言葉」を正しく読み取ったらどえなるのだ。
49 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 09:38:28 ] うわ。アンカー間違えた>>34 だ。最後”どえなるのだ” じゃねえ ”どうなるのだ” だった。
50 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 10:09:38 ] tail $ take 10 $ filter func [1..] とかそんな感じのことじゃねーの?
51 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 10:31:33 ] >>48 > 元の「言葉」を正しく読み取ったらどえなるのだ。 「(1〜∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する」 これが元の言葉だよね。 「”マジで言葉通りに書ける”とあるから1−2番目を計算せずに」って、それは元の言葉にある 「条件に合致する値を抽出」する途中の段階を、そっと見て見ぬフリしてない?
52 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 10:56:53 ] 遅延評価って、例えば現在の時間を内部でパラメータとして使うような関数だと、 いつ評価されるん?
53 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 11:00:43 ] 現在時間を使うなら「時間を得る」部分だけはその時点で評価されて それ以外の処理は後回しじゃね?
54 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 11:06:17 ] >>51 見て見ぬフリはしてない。「条件に合致する値を抽出」するところは処理系が 3番目が必要になったときに1−3番目を計算して3番目を返すと解釈している。 だからプログラマはいきなり3番目を取り出せると想像したんだけどこれで 合ってるんじゃないか。
55 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 11:09:07 ] 遅延評価と、クロージャとかカリー化を統一できそうだな。
56 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 11:38:45 ] >>52 Haskell では IO モナドでそのへんをうまくやってる
57 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 17:48:30 ] とんだすれ違いスレだな
58 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 18:52:22 ] すれちがい通信か
59 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 19:52:52 ] >>16 を>>26 のアルゴリズムで書いてみたわ。 泥臭い方法だけど、桁が増えても計算量が線形増加だからいいかも。 30行くらいだけどソースいる?
60 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 21:05:47 ] plz
61 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 21:06:28 ] 2/2 www.youtube.com/watch?v=nVDq-s3r5Ys 1/2 www.youtube.com/watch?v=9UU4Hx76Zg0
62 名前:59 mailto:sage [2009/07/26(日) 21:16:15 ] def kaihei(n, k): stack = [] keta = 1 while n >= 100: stack.append(n % 100) n = int(n / 100) keta = keta + 1 else: stack.append(n) dlist = list(range(10)) dlist.reverse() baikon = 0 rem = 0 result = "" while (keta > 0 or (keta <= 0 and -keta <= k)): if keta == 0: result += "." keta = keta - 1 if(len(stack) > 0): rem = rem + stack.pop() for i in dlist: if(rem >= i * (baikon + i)): result += str(i) rem = (rem - i * (baikon + i)) * 100 baikon = baikon * 10 + i * 20 keta = keta - 1 break print(result)
63 名前:59 mailto:sage [2009/07/26(日) 21:24:32 ] >>> kaihei(2, 100) 1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727 ちなみに、整数しか対応してない。 一部の名前が、開平とか桁とか倍根とかそのままローマ字になってるけど、そのあたりは勘弁してくれ。 かわりに桁合わせをちゃんとしたから。
64 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 23:32:27 ] クスクス
65 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 23:35:23 ] >>43 横レスだが drop 49 $ take 100 $ filter (\x -> (foldr ((+) . product . enumFromTo 1 . read . (flip (:) [])) 0 . show) x == x) [1..] 直感的に書くとこんな感じかな? 49と100の部分を変えればどうとでも書けるよ。
66 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 07:40:37 ] >>65 サンクス! haskell知らないから間違っているかもしれないが49までの計算結果を捨てる のを明示しなきゃいけないということですね。 >>34 を読んだら 2..10 という感じで書けると思っていた。
67 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:51:59 ] >>62-63 GJ!!!
68 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 11:28:26 ] memo ttp://www.youtube.com/watch?v=xJ93ESdCJgI
69 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 12:08:35 ] >>66 そうですね。 でもたとえば「それが50番目である」ことを示すには前の49個の計算が 必要なわけで、それを省略することは遅延評価といえどできない。 遅延評価なのは100以降を計算しないこと。 自分で2,10を引数にとる関数を作ればもちろん2..10みたいに書けるよ。
70 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 15:02:19 ] PHPで無料レンタル鯖のいいとこ&有名なとこあります?
71 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 15:12:24 ] 俺んち
72 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 15:25:28 ] 養殖ならノルウェー辺りが有名だな
73 名前:デフォルトの名無しさん [2009/07/27(月) 23:44:17 ] www.atmarkit.co.jp/news/200907/24/ruby01.jpg なにポーズつけてるんだよ(w
74 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 23:50:13 ] It has already been out.
75 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 01:14:48 ] 「ポーズとってください」って言われたんだろうなw 『まつもとゆきひろ コードの世界』でも「私だって恥ずかしい」とか書いてた
76 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 03:13:45 ] その記事おもしろかったねー。いろんな話が凝縮されてて。
77 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 05:55:15 ] プログラマーって見栄え悪いのばっかだな。
78 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 06:00:38 ] 見栄えで稼ぐ商売以外は似たり寄ったりだよ。
79 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 12:14:20 ] >77 運動不足が職業病だからな。
80 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 12:46:29 ] まっつんはちょっと痩せればそれなりにダンディになるとは思うが。
81 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 13:31:14 ] 全員、顎髭を伸ばせば、かっこがつくよ。
82 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 13:50:10 ] They should be skin head.
83 名前:デフォルトの名無しさん [2009/07/29(水) 19:12:58 ] Python 3.1からifとかforとかけっこう変わるんだね。 修正がめんどい orz
84 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:59:40 ] coreblog.org/ats/statements-to-expressions-python-31 このエープリルフールを真に受けちゃった人ですか
85 名前:83 [2009/07/30(木) 01:26:38 ] >>84 変わらないの?良かったぁ (;´Д`)
86 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:31:23 ] しかし、3がリリースされた直後に3.1を四月馬鹿ネタにするってのもなんかセンスが微妙だな Python 4とかなら微笑ましいんだが。 Pythonってそんなにバージョンアップしないもんなの? Perl6がリリースされた後でPerl 6.2の話題とか、多分普通に信じるぞ。
87 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 03:32:19 ] Pythonのメジャーバージョンは1、2、3、3.1、3.11、3.12、3.13、3.14、3.141と増えていくからな
88 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 03:34:48 ] クヌース先生の美学だよなあ……
89 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 13:13:54 ] >>87 最近の小学生は3と聞いたけど
90 名前:デフォルトの名無しさん [2009/07/30(木) 13:39:23 ] >>89 それ聞きまちがい
91 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 15:00:19 ] ttp://ja.wikipedia.org/wiki/円周率は3
92 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 00:01:38 ] エイプリルフールネタを一見それとはわからない状態で いつまでもWeb上に残しておくなんて、はっきり言って悪だろ。 それでwebなんちゃらなんて会社の代取とか笑えねーって。
93 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 00:39:36 ] 日付みればわかるだろ。アホか
94 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 01:03:21 ] 実際、真に受けてるやつがいるだろ。アホか
95 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 01:08:02 ] ひとりのアホの面倒をみるためにみんなが犠牲にならなければならないのかよ
96 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 08:58:40 ] >>95 犠牲て。 ネットにデマを流すときはそれなりの 配慮があってしかるべき。jk
97 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 11:54:13 ] 4/1のエントリって時点で、それなりの配慮はしてるわな。
98 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 18:47:55 ] 4/1に書かれた記事は全て疑わないといけないのかよ
99 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 19:00:29 ] とうぜんだろ
100 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 21:20:58 ] どっかのバカがやってるならともかく、 プロフィールにそれなりの肩書き書いておいて あんな感じじゃ、いろいろ神経疑われるわなw
101 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:03:28 ] Pythonian: モンティパイソン精神なのでそんなの余裕で笑ってスルー Rubist: エープリルフールネタなんだからあーたらこーたら Perler: ネタを見逃して話題に乗れない
102 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:13:16 ] >>101 あ、それいいえてミョー
103 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 23:20:35 ] >>101 いや、きっとdankogaiなら、 dankogaiならネタを見逃すはずがない。
104 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 23:34:11 ] >>103 断固GUYって誰?