【Perl,PHP】LLバトルロワイヤル7【Ruby,Python】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/07/25(土) 11:03:24エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・
さあ、死ぬまで語りやがれ!!!
■LLとは?
軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、
コードの作成や修正が容易と見なされるプログラミング言語のことを指す。
ここでいう「軽さ」はプログラマの負担の軽重を指し、
実行速度に優れているという意味ではない。
現在の水準では
・インタプリタ
・動的型
・正規表現
・関数オブジェクト
などを利用できるものがLLと呼ばれることが多い。(Wikipediaより)
■過去スレ
【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1244166510/
【Perl,PHP】LLバトルロワイヤル5【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1238720336/
【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1234635513/
【Perl,PHP】LLバトルロワイヤル3【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1215319832/
【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1209289408/
【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1188997302/
0002デフォルトの名無しさん
2009/07/25(土) 11:48:28Lispも入れろっちゅうことですよ アホー!
0003デフォルトの名無しさん
2009/07/25(土) 12:49:38信者とアンチがうざいから名前を出さないわけではありませんのでご了解をお願いします。
0004デフォルトの名無しさん
2009/07/25(土) 12:59:520005デフォルトの名無しさん
2009/07/25(土) 13:30:52>>3のLispのところをハスケルに置き換えてください。他の言語も同様です。
マイナーな言語を使う人は劣等感から妄想を抱きがちですが決してそういう意図は
ありませんのでご了解をお願いします。
では、死ぬまで語りやがるよう お願いします。
なお私は1ではありません。でしゃばってすみません。
0006デフォルトの名無しさん
2009/07/25(土) 14:50:020007デフォルトの名無しさん
2009/07/25(土) 15:03:280008デフォルトの名無しさん
2009/07/25(土) 15:07:580009デフォルトの名無しさん
2009/07/25(土) 16:19:240010デフォルトの名無しさん
2009/07/25(土) 17:09:12おままごとか、せいぜいCADのマクロぐらいにしか使えないって事?
0011デフォルトの名無しさん
2009/07/25(土) 17:28:25大雑把に言えばLispに近いほどJavaから遠くなる傾向がある。
0012デフォルトの名無しさん
2009/07/25(土) 17:35:16基本的には褒め言葉
強力なリストであったり、高階関数であったり、GCであったり
パワーのある言語だねって
0013デフォルトの名無しさん
2009/07/25(土) 17:37:470014デフォルトの名無しさん
2009/07/25(土) 17:59:070015デフォルトの名無しさん
2009/07/25(土) 18:01:05Lisp使うとjavaは要らんとつくづく思うよ
0016デフォルトの名無しさん
2009/07/25(土) 19:13:090017デフォルトの名無しさん
2009/07/25(土) 19:14:140018デフォルトの名無しさん
2009/07/25(土) 19:32:42>>> from decimal import Decimal, getcontext
>>> getcontext().prec = 101
>>> Decimal(2).sqrt()
Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732
4784621070388503875343276415727')
0019デフォルトの名無しさん
2009/07/25(土) 19:57:38最強は機械言語でいいじゃん
0020デフォルトの名無しさん
2009/07/25(土) 20:01:420021デフォルトの名無しさん
2009/07/25(土) 20:41:18↓
(r * 10^100)^2 = r^2 * 10^200 ≒ 2 * 10^200 となる整数 (r * 10^100) を探してみる
↓
(r * 10^100) / 10^100 がたぶん求める答え
ひょっとすると 10^101 かもしれないがそれは後で検証
0022デフォルトの名無しさん
2009/07/25(土) 21:22:55... 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
0023デフォルトの名無しさん
2009/07/25(土) 21:32:40Traceback (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
0024デフォルトの名無しさん
2009/07/25(土) 21:36:15糞スレ決定だろ
0025デフォルトの名無しさん
2009/07/25(土) 22:44:23http://www.nicovideo.jp/watch/sm7737318
0026デフォルトの名無しさん
2009/07/25(土) 23:14:45筆算でも算盤でもできる。
http://ja.wikipedia.org/wiki/%E9%96%8B%E5%B9%B3%E6%B3%95
0027デフォルトの名無しさん
2009/07/25(土) 23:16:080028デフォルトの名無しさん
2009/07/25(土) 23:38:560029デフォルトの名無しさん
2009/07/26(日) 01:53:07if( hoge() or hogehoge() )
って時に、hoge()がtrueならhogehogeが実行されないってことだしょ?
短絡的に考えれば、hogehoge()を実行しなくていい時ってことでいいんじゃない。
どっちも確実に実行したいなら、ifに掛ける前に代入しておけばいいだけだし
0030デフォルトの名無しさん
2009/07/26(日) 01:54:340031デフォルトの名無しさん
2009/07/26(日) 01:57:100032デフォルトの名無しさん
2009/07/26(日) 02:02:22俺おもいっきし間違ってる?
0033デフォルトの名無しさん
2009/07/26(日) 02:16:560034デフォルトの名無しさん
2009/07/26(日) 06:37:03って時に、普通の言語ならbar()+baz()をそれぞれ呼んで計算してから
その結果をfoo()に渡すのに対して、遅延評価のある言語だと
いきなりfoo()に「bar()+baz()」っていう「式」を渡す
んで、bar()+baz()の値が実際に必要になるまでは式のままで評価されない
あと、無限リストなんかも扱えたりする
(1〜∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する
なんて処理がマジで言葉通りに書ける
0035デフォルトの名無しさん
2009/07/26(日) 06:37:40せめてニュートン法くらい使えよ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
0036デフォルトの名無しさん
2009/07/26(日) 06:54:490037デフォルトの名無しさん
2009/07/26(日) 07:01:42>あと、無限リストなんかも扱えたりする
>(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番目を抽出せよ.
これを遅延評価でおながいします.
0038デフォルトの名無しさん
2009/07/26(日) 07:19:340039デフォルトの名無しさん
2009/07/26(日) 08:08:24それ2つしか答えないよ
0040デフォルトの名無しさん
2009/07/26(日) 08:13:400041デフォルトの名無しさん
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
0042デフォルトの名無しさん
2009/07/26(日) 08:46:33ハスケルでお願いっていう意味じゃないの?
0043デフォルトの名無しさん
2009/07/26(日) 08:51:30では50番目から100番目まで。
というのはおいといて”マジで言葉通りに書ける”とあるから1−2番目を計算せずに
いきなり3番目を取り出せるのだろうな。処理系内部では一所懸命計算やるだろうけど。
>>35の説明で遅延評価をはじめて知ったんだけど処理系にバグを仕込むために考え出さ
れた仕様ではないだろうか。
0044デフォルトの名無しさん
2009/07/26(日) 09:07:444っつだ
ぼけ
0045デフォルトの名無しさん
2009/07/26(日) 09:08:400046デフォルトの名無しさん
2009/07/26(日) 09:11:32え、もしかして、なんか言質とってツッコミ入れて恥かかせたがってる?
「言葉通りに」というところを取り上げて何か言いたかったら、元の「言葉」を正しく読み取らなきゃダメよ。
0047デフォルトの名無しさん
2009/07/26(日) 09:26:02僕にとっては大事な情報源です。
たまにはボロクソ言われることもあるけど、みんな親切に教えてくれる。
いつもありがたいと思ってる。
0048デフォルトの名無しさん
2009/07/26(日) 09:29:47そんな気はまったくない。>>35には感謝してるよ。よそで”遅延評価というのはだな・・・”
とか言ってみたいほうだから。元の「言葉」を正しく読み取ったらどえなるのだ。
0049デフォルトの名無しさん
2009/07/26(日) 09:38:280050デフォルトの名無しさん
2009/07/26(日) 10:09:38とかそんな感じのことじゃねーの?
0051デフォルトの名無しさん
2009/07/26(日) 10:31:33> 元の「言葉」を正しく読み取ったらどえなるのだ。
「(1〜∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する」
これが元の言葉だよね。
「”マジで言葉通りに書ける”とあるから1−2番目を計算せずに」って、それは元の言葉にある
「条件に合致する値を抽出」する途中の段階を、そっと見て見ぬフリしてない?
0052デフォルトの名無しさん
2009/07/26(日) 10:56:53いつ評価されるん?
0053デフォルトの名無しさん
2009/07/26(日) 11:00:43それ以外の処理は後回しじゃね?
0054デフォルトの名無しさん
2009/07/26(日) 11:06:17見て見ぬフリはしてない。「条件に合致する値を抽出」するところは処理系が
3番目が必要になったときに1−3番目を計算して3番目を返すと解釈している。
だからプログラマはいきなり3番目を取り出せると想像したんだけどこれで
合ってるんじゃないか。
0055デフォルトの名無しさん
2009/07/26(日) 11:09:070056デフォルトの名無しさん
2009/07/26(日) 11:38:45Haskell では IO モナドでそのへんをうまくやってる
0057デフォルトの名無しさん
2009/07/26(日) 17:48:300058デフォルトの名無しさん
2009/07/26(日) 18:52:220059デフォルトの名無しさん
2009/07/26(日) 19:52:52泥臭い方法だけど、桁が増えても計算量が線形増加だからいいかも。
30行くらいだけどソースいる?
0060デフォルトの名無しさん
2009/07/26(日) 21:05:470061デフォルトの名無しさん
2009/07/26(日) 21:06:281/2 http://www.youtube.com/watch?v=9UU4Hx76Zg0
006259
2009/07/26(日) 21:16:15stack = []
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)
006359
2009/07/26(日) 21:24:321.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
ちなみに、整数しか対応してない。
一部の名前が、開平とか桁とか倍根とかそのままローマ字になってるけど、そのあたりは勘弁してくれ。
かわりに桁合わせをちゃんとしたから。
0064デフォルトの名無しさん
2009/07/26(日) 23:32:270065デフォルトの名無しさん
2009/07/26(日) 23:35:23横レスだが
drop 49 $ take 100 $ filter (\x -> (foldr ((+) . product . enumFromTo 1 . read . (flip (:) [])) 0 . show) x == x) [1..]
直感的に書くとこんな感じかな?
49と100の部分を変えればどうとでも書けるよ。
0066デフォルトの名無しさん
2009/07/27(月) 07:40:37サンクス!
haskell知らないから間違っているかもしれないが49までの計算結果を捨てる
のを明示しなきゃいけないということですね。
>>34を読んだら 2..10 という感じで書けると思っていた。
0067デフォルトの名無しさん
2009/07/27(月) 08:51:59GJ!!!
0068デフォルトの名無しさん
2009/07/27(月) 11:28:26ttp://www.youtube.com/watch?v=xJ93ESdCJgI
0069デフォルトの名無しさん
2009/07/27(月) 12:08:35そうですね。
でもたとえば「それが50番目である」ことを示すには前の49個の計算が
必要なわけで、それを省略することは遅延評価といえどできない。
遅延評価なのは100以降を計算しないこと。
自分で2,10を引数にとる関数を作ればもちろん2..10みたいに書けるよ。
0070デフォルトの名無しさん
2009/07/27(月) 15:02:190071デフォルトの名無しさん
2009/07/27(月) 15:12:240072デフォルトの名無しさん
2009/07/27(月) 15:25:280073デフォルトの名無しさん
2009/07/27(月) 23:44:17なにポーズつけてるんだよ(w
0074デフォルトの名無しさん
2009/07/27(月) 23:50:130075デフォルトの名無しさん
2009/07/28(火) 01:14:48『まつもとゆきひろ コードの世界』でも「私だって恥ずかしい」とか書いてた
0076デフォルトの名無しさん
2009/07/28(火) 03:13:450077デフォルトの名無しさん
2009/07/28(火) 05:55:150078デフォルトの名無しさん
2009/07/28(火) 06:00:380079デフォルトの名無しさん
2009/07/28(火) 12:14:20運動不足が職業病だからな。
0080デフォルトの名無しさん
2009/07/28(火) 12:46:290081デフォルトの名無しさん
2009/07/28(火) 13:31:140082デフォルトの名無しさん
2009/07/28(火) 13:50:100083デフォルトの名無しさん
2009/07/29(水) 19:12:58修正がめんどい orz
0084デフォルトの名無しさん
2009/07/29(水) 20:59:40このエープリルフールを真に受けちゃった人ですか
008583
2009/07/30(木) 01:26:38変わらないの?良かったぁ (;´Д`)
0086デフォルトの名無しさん
2009/07/30(木) 01:31:23Python 4とかなら微笑ましいんだが。
Pythonってそんなにバージョンアップしないもんなの?
Perl6がリリースされた後でPerl 6.2の話題とか、多分普通に信じるぞ。
0087デフォルトの名無しさん
2009/07/30(木) 03:32:190088デフォルトの名無しさん
2009/07/30(木) 03:34:480089デフォルトの名無しさん
2009/07/30(木) 13:13:54最近の小学生は3と聞いたけど
0090デフォルトの名無しさん
2009/07/30(木) 13:39:23それ聞きまちがい
0091デフォルトの名無しさん
2009/07/30(木) 15:00:190092デフォルトの名無しさん
2009/07/31(金) 00:01:38いつまでもWeb上に残しておくなんて、はっきり言って悪だろ。
それでwebなんちゃらなんて会社の代取とか笑えねーって。
0093デフォルトの名無しさん
2009/07/31(金) 00:39:360094デフォルトの名無しさん
2009/07/31(金) 01:03:210095デフォルトの名無しさん
2009/07/31(金) 01:08:020096デフォルトの名無しさん
2009/07/31(金) 08:58:40犠牲て。
ネットにデマを流すときはそれなりの
配慮があってしかるべき。jk
0097デフォルトの名無しさん
2009/07/31(金) 11:54:130098デフォルトの名無しさん
2009/07/31(金) 18:47:550099デフォルトの名無しさん
2009/07/31(金) 19:00:290100デフォルトの名無しさん
2009/07/31(金) 21:20:58プロフィールにそれなりの肩書き書いておいて
あんな感じじゃ、いろいろ神経疑われるわなw
0101デフォルトの名無しさん
2009/07/31(金) 22:03:28Rubist: エープリルフールネタなんだからあーたらこーたら
Perler: ネタを見逃して話題に乗れない
■ このスレッドは過去ログ倉庫に格納されています