1 名前:デフォルトの名無しさん [2013/03/08(金) 13:01:05.08 ] JavaScript, Perl, PHP, Python, Ruby, … スクリプト言語をすべて扱うスレッドです。 最強のスクリプト言語は、どれよ? さあ、死ぬまで語りやがれ!!! ■ スクリプト言語の用途 Webアプリ、シェルスクリプト ■ スクリプト言語の特徴 実行速度に優れているわけではないが、 取り回しに優れ、コードの作成や修正が容易、プログラマの負担が軽い! ・インタプリタ ・動的型 ・正規表現 ・クロージャ などを利用できるものがある。 長いコードはここで ttp://play.island.ac/codepaste/ 【Perl,Python,PHP】LL バトルロワイヤル 29【JS,Ruby】 toro.2ch.net/test/read.cgi/tech/1361576195/
2 名前:uy mailto:sage [2013/03/08(金) 13:27:38.88 ] Rubyが最強だろ 終了
3 名前:デフォルトの名無しさん mailto:sage [2013/03/08(金) 13:40:31.96 ] ____ __,,/ _, ----`ヽ :. :. / _ ___ 、\ / / i \ \\ :. :. ,'./ i ヽ:. ヽ:.:.. ヽ.ヽ ←Lua ,'/ / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :. :. |i .i i .i / ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ} |i .i l :N_, -弋 \弌弋ナ:}:.:} :. |i∧ ', :{ ,ィjモト \ イjミトイイV :. な… .| :メヽ.', `ozZ} izN。ハ::{ なんなんですか? :. | :ヾ_! ゝ "゙゙ ' `゙ ハ.:', :. ここ、どこですか? | :.:_イ .:.ヽ. (二フ , イ :.:.:!:.ヽ なんであたし :. / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:. 貼られたんですか? / ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\ :. / .{. ',ヾ、ヽi .:.:.{ /(^` |.:.:.:.//: : :.}: . ヽ.:. / / ) ヽ ヾ、ヽ:.ハ ヤ{ ∧/.-‐'": : |:.:. i ', ./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、 : : : l:.:.: .ハ ', { /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.} V | .:.:/:.:|_,ィ' ̄ ヽ三{ `ー-ノ : イ : : :/:.:i.:{ リ ヽ:.:{、.:.V : : ヘ : : {: : :/:.::∧| ヽ! )人 : : :人 : : : / \! :. " ヽ : : : : :/イ{ :.ノ: : : :.\ :. :. \__///: :\______/: : : : : : : ヽ / //: : :|;|: : : : : : i: : : __: : : : ', :. / 、 {;{ |;| . : i/. : : : : : :| / `Y;{. . . .|;|. : : : /i: : : : : : : : :l
4 名前:デフォルトの名無しさん [2013/03/08(金) 16:23:27.10 ] d.hatena.ne.jp/kazu-yamamoto/20130308/1362724125
5 名前:uy [2013/03/08(金) 22:33:17.12 ] >>僕は静的な C 言語から、動的な Perl、Lisp、JavaScript を経て、現在では静的な Haskell を主に使っている。 この時点でバカ この人はえらそうに文章かいていいレベルじゃない
6 名前:デフォルトの名無しさん [2013/03/08(金) 23:30:22.81 ] 特にプログラムの勉強もしたことのない低学歴の平凡な素人がお遊びで作ったPHPスタンドアロンアプリ。 hcapp.rakusaba.jp
7 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 06:40:42.03 ] >>2 その最強()ルビーを本家ルビーよりも早く動かせるTopazのPython最強だな。
8 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 07:15:11.81 ] JavaもREPLあるからスクリプト言語だよね www.scravy.de/blog/2012-02-27/a-read-eval-print-loop-for-java.htm Java最強
9 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 07:27:00.08 ] 1 宿題の丸投げという行為はカンニングと同等。学則による処分の対象 2 丸投げした質問者もそれを知って回答した回答者も大学の単位認定業務の 妨害、すなわち偽計業務妨害 3 宿題の問題は著作物であり、それをアップローダやスレに投稿する事は 公衆送信権の侵害。うpを唆しているテンプレは著作権侵害の教唆 違法行為が前提で成り立つスレなので、次スレは立てずにこのスレで終了
10 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 08:45:27.72 ] 2・3スレ前で「お題」が出て色んな言語で解いていたのが一番良かった。 自分が使っていない言語の回答を見て、 ああこんな解き方があるのかととても参考になったよ。
11 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 09:01:33.02 ] s.ameblo.jp/ado-doa/entry-11225829601.html 心理学者フィリップ・ジンバルド は1969年、人が匿名状態にある時の行動特性を実験により検証した。 その結論は、「人は匿名性が保証されている・責任が分散されているといった状態におかれると、 自己規制意識が低下し、『没個性化』が生じる。 その結果、情緒的・衝動的・非合理的行動が現われ、また周囲の人の行動に感染しやすくなる。」 というものであった。
12 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 09:06:47.71 ] >>10 スレタイ変えなくても、御題出すだけで C#厨やJava厨は排除できたよね あいつら口だけでコード書けないから
13 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 09:13:25.82 ] お題なんて意味ないわ 機能が豊富な言語、シンタックスシュガー満載な言語、 関数型の言語が短くかけるのは分かりきってる。 コードの短さなんてのは言語の評価する視点の一つに過ぎない
14 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 09:18:39.81 ] >>12 コード書けないとは、どういうことを意味するのかな。
15 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 09:21:03.28 ] ちょっと昼にでも本屋行ってオッパイソンの本買ってくる
16 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 09:21:22.82 ] >>12 C#厨、Java厨なんて呼んで召喚したいわけね
17 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 09:34:01.44 ] >>14 プログラマじゃないんじゃね? それでも「IDEが〜」とか書くことくらいは出来る
18 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 09:55:42.24 ] お題 こんな感じにコマンドラインで動くTODO管理アプリを作りなさい $ ./todo add "本屋でPythonの本を買ってくる" $ ./todo add "たいやきを買ってくる" $ ./todo list 1: 本屋でPythonの本を買ってくる 2: たいやきを買ってくる $ ./todo done 2 $ ./todo list 1: たいやきを買ってくる アドリブも可
19 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 09:58:45.00 ] あ、>>18 訂正。$ ./todo done 1 でお願いします 番号が繰り上がることに注意(そうしないと後々 todo done 189203 とかしなきゃならなくなるので)
20 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 10:03:39.23 ] >>18 TODを知らないからお呼びでないのだが、 done 2 これどういう意味なの?
21 名前:20 mailto:sage [2013/03/09(土) 10:05:08.87 ] かぶったか。了解。
22 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 10:18:08.88 ] 可変長のリストの入力に対して固定長のリストを出力したいのですが 足りない部分を先頭の要素から0で埋めようと思います 例:出力が固定長 5 のとき 入力 [1, 3] 出力 [0, 0, 0, 1, 3] 入力 [2, 1, 3] 出力 [0, 0, 2, 1, 3] 入力 [5, 4, 2, 1, 3] 出力 [5, 4, 2, 1, 3] 一番シンプルに書ける言語はどんなのがありますか?
23 名前:20 mailto:sage [2013/03/09(土) 10:25:31.22 ] >>22 Prolog
24 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 10:30:02.10 ] >>22 Python xs = [1, 3] print(([0] * 5 + xs)[-5:])
25 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 10:35:08.59 ] >>18 $ cat todo #!/usr/bin/env python import sys import os import pickle if os.path.isfile('todo.dat'): with open('todo.dat', 'rb') as fp: todo = pickle.load(fp) else: todo = [] if sys.argv[1] == 'list': for x in enumerate(todo, 1): print('%s: %s' % x) elif sys.argv[1] == 'add': todo.append(sys.argv[2]) elif sys.argv[1] == 'done': todo.pop(int(sys.argv[2]) - 1) with open('todo.dat', 'wb') as fp: pickle.dump(todo, fp)
26 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 10:40:12.87 ] >>25 pythonが開発効率一位か
27 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 10:42:36.85 ] >>24 おもしろい記法があるものだな。
28 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 11:50:36.85 ] >>18 @Mathematica reset 機能を追加。 In:= toDo[mode_,action_:""]:=Module[{todofile,todolist}, todofile="todo.txt"; todolist=Import[todofile,"Text"]// StringSplit[#,"¥n"]&; Which[ mode == "add", Append[todolist,action]// Export[todofile,#]&;, mode == "list", todolist// MapIndexed[{ToString[#2[[1]]]<>":",#1}&,#]&// Grid, mode == "done", Drop[todolist,{action}]// Export[todofile,#]&;, mode == "reset", {}// Export[todofile,#]&; True, {}] ];
29 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 11:58:23.92 ] >>22 @Mathematica In:= lst = {1,3}; In:= PadLeft[lst,5] Out:= {0,0,0,1,3} リストのゼロ埋めは良く使うので、 組み込み関数として最初から持ってる言語も多いのでは。 >>24 def padLeft(lst, n): return (([0] * n + lst)[-n:]) ↑自分の Python ライブラリに追加しとくわ ノシ
30 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 12:02:12.76 ] 入力長 > 出力長 のときの動作が未定義
31 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 12:25:10.44 ] >>30 Mathematica だと、こうなる。 In:= PadLeft[{6,5,4,2,1,3},5] Out= {2, 3, 4, 5, 6} Python だとこんな感じかな。 def padLeft(lst, n): if len(lst)>n: return lst[-n:] else: return (([0] * n + lst)[-n:])
32 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 12:29:21.74 ] >>31 Pythonのその条件分岐は無くても同じ xs = [1,2,3,4,5,6,7,8] print(([0] * 5 + xs)[-5:]) #=> [4, 5, 6, 7, 8]
33 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 12:32:19.79 ] >>32 ほんとだ。 ついでに padRight も。 def padRight(lst, n): return ((lst + [0] * n)[:n])
34 名前:33 mailto:sage [2013/03/09(土) 12:33:45.72 ] インデントが消えてしまった。連投スマソ。 def padRight(lst, n): return ((lst + [0] * n)[:n])
35 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 12:59:45.16 ] perl >>18 use 5.016; use warnings; use Tie::File; tie my @list, 'Tie::File', 'todo.dat' or die $!; given($ARGV[0]){ when('add'){ push(@list, $ARGV[1]) } when('list'){ print map{ "$_: $list[$_ - 1]\n" } (1 .. @list) } when('done'){ splice(@list, $ARGV[1] - 1, 1) } default{ say "$0 usage: (add todo/list/done number)" } } >>22 my @l = (1, 3); my @r = ((0) x 5, @l)[@l .. $#l + 5];
36 名前:デフォルトの名無しさん [2013/03/09(土) 13:19:16.57 ] >>31 なんで順番かわるんだろ
37 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 13:21:07.05 ] >>35 perl は二度と使いたくないと決心を新たにしました。
38 名前:31 mailto:sage [2013/03/09(土) 13:25:49.63 ] >>36 ごめん。貼り付ける計算結果を間違えた。orz 正しくは、 In:= PadLeft[{6, 5, 4, 2, 1, 3}, 5] Out= {5, 4, 2, 1, 3}
39 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 13:50:02.25 ] 完動品として、>>18 を俺ならこう作る #!/usr/bin/perl use strict; use warnings; my ($com, $msg) = @ARGV; open(my $FH, "+<", "todo.data") || die("ファイルが開けない"); flock($FH, 2); my @data = <$FH>; if (!defined $com || $com eq "") { print "todo [add | done | list] [value]\n"; } elsif ($com eq 'add') { push (@data, $ARGV[1]."\n"); } elsif ($com eq 'done') { splice(@data, ($ARGV[1] - 1), 1); } elsif ($com eq 'list') { for (my $i=0; $i<scalar @data; $i++) { print $i + 1 , ':', $data[$i]}; } seek($FH, 0, 0); print $FH $_ for (@data); truncate ($FH, tell($FH)); exit;
40 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 13:57:24.34 ] $msg に値入れてるのにARGV[1]見てるのは、ちょっとした茶目っ気
41 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 14:29:05.12 ] 少ないな、もっと色々な言語の人くれよ
42 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 14:33:01.43 ] >>35 って配列をファイルに書きだすコード抜けてる?って思ったら Tie::Fileだと配列への変更がファイルに反映されるのか search.cpan.org/~toddr/Tie-File-0.98/lib/Tie/File.pm やはりあなどれないPerlあなどれない
43 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 14:38:25.99 ] Perl好きな俺が言うのもなんだけどタイはわかりにくい・・・
44 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 18:09:12.85 ] Thailand
45 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 19:08:30.26 ] おぉ?RubyやPHPのソースがないんじゃないか? 雑談の時は賑やかなのにソース晒すとなったら静かだなおい
46 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 19:36:50.88 ] rubyのひとは2chにソース貼るの極端に嫌う 著作権が自動的に2chに譲渡されるとか何とか
47 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 20:30:12.74 ] >>18 require "yaml" filename = "todo.yaml" todo = File.exists?(filename) ? YAML.load_file(filename) : [] case ARGV[0] when "add" todo << ARGV[1] YAML.dump(todo, open(filename, "w")) when "list" todo.each_with_index {|s, i| puts "#{i + 1}: #{s}" } when "done" idx = ARGV[1].to_i - 1 todo.delete_at(idx) YAML.dump(todo, open(filename, "w")) end >>22 xs = [1,3] p [0] * (5 - xs.size) + xs 別にruby詳しいわけじゃないから推奨されてない書き方してるかも
48 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 20:42:36.02 ] >>46 それをやたら主張する人が一時期いたんだよな
49 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 20:57:35.20 ] >>46 Ruby処理系のパッチなんかを2chに貼ると怒られることはあるけど お題の答えを貼るのまで嫌がったり問題視したりはしてないはず
50 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 21:06:29.34 ] >>46 >>49 それじゃオープンソースアプリの一部をコピペしたりしたら、 その一部が2chの著作物になるのか? そんな主張が認められるのか? だとしたら、コピペしまくれば2ch所有のソースばかりになるな
51 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 21:12:53.25 ] それってソースコードに限らないだろうし、とんでもないことになるよね 市販の小説をコピペしても2chの著作物になるなんて
52 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 21:17:58.60 ] >>50 バトンといっしょで権利を持たない人から権利を承継することはない だから誰かの著作物であるソースを2chにコピペしても2chが著作権を取得することはない 49で書いたのは「Rubyに不具合あったのでここ(2ch)にパッチ貼っちゃいますね」的な事例
53 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 21:18:07.75 ] クソスレ
54 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 21:36:39.84 ] たまにはガウチェ(゚д゚)!使いさんの回答を見たい
55 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 22:29:32.32 ] なるほど、Rubyユーザーはバグ見つけても上流にパッチ投げないクソが多いんですね
56 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 23:05:27.22 ] xs=[1,3] (5-xs.size).times{xs.unshift(0)}
57 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 01:00:11.68 ] いつまで僕らはdankogaiを崇め続けなければならないのか anond.hatelabo.jp/20130309205518 Perlのためにdankogaiがたくさんコードを書いて貢献したのは知っている。 で、その貢献とやらは何十年にも渡って僕らが崇め続けなければならないほど凄いものだったのか? 僕らはいつまでdankogaiに「凄いですねー」ってご機嫌を取り続けないといけないの? 英語圏でこれほどまでに自分の過去の貢献を誇示し続けるOSSプログラマって少ないよ。 dankogaiがいつまでも過去の貢献を振りかざし続けるのはもうそれは老害と言われても仕方が無いんじゃないかなあ。 古参OSSプログラマがみんな過去の貢献にあぐらをかいて若者を見下すようになったらOSSは確実に終わる。
58 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 01:33:09.13 ] >>57 これ書いたの誰かわかるわ〜w まあ同意だけど
59 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 01:35:43.28 ] Perlの連中はわざわざこんなエントリ書かなきゃならんのか ご愁傷様
60 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 02:04:37.36 ] Twitter界隈でここんところPerlがディスられてたが ついにこのスレに飛び火したかw
61 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 02:21:10.61 ] perl撲滅されたら困るんですね よくわかります
62 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 02:25:17.22 ] dankogaiもライブドア事件のときに朝生でKYな存在だったのに 書評をコンスタントに書くだけでなぜか重鎮的な地位を手に入れたよな あれは不思議で仕方なかった
63 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 02:40:17.43 ] 係属は力なり
64 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 02:47:21.58 ] 祇園精舎の鐘の声