初心者のためのプログ ..
175:デフォルトの名無しさん
08/04/20 20:35:51
perlで作った2chブラウザ見たい人いますか?
4時間ほどで作りました
176:デフォルトの名無しさん
08/04/20 21:48:04
GUIは何を使ったの?
177:perl中毒
08/04/20 21:51:52
widestudioだよ
178:デフォルトの名無しさん
08/04/20 22:29:16
>>175
うp
179:デフォルトの名無しさん
08/04/20 23:22:25
前にN速で見たなこういう奴
180:デフォルトの名無しさん
08/04/20 23:49:41
株式板?に帰れよwwwww
181:サイタマン ◆mYN3wsz7vE
08/04/21 01:58:13
perlで作った2chブラウザのSSです。
他のスレにコピペするのは辞めてください。
URLリンク(pict.or.tp)
182:サイタマン ◆mYN3wsz7vE
08/04/21 01:59:14
2chブラウザを作りたい人は質問に答えますよ。
183:デフォルトの名無しさん
08/04/21 02:06:27
10万回コピペした!
184:デフォルトの名無しさん
08/04/21 02:29:16
株やってる人には面白そうなブラウザだな。
185:デフォルトの名無しさん
08/04/21 02:32:36
スレの趣旨からは外れてる気がするが、
株やる人にとっては便利なのかね
186:デフォルトの名無しさん
08/04/21 06:10:50
スレ違いも甚だしい
187:デフォルトの名無しさん
08/04/21 06:54:38
>>186
株できない子供は黙ってろ
188:デフォルトの名無しさん
08/04/21 07:00:34
スレタイ読めないゆとりは死ね
189:デフォルトの名無しさん
08/04/21 08:30:51
>>188
株できない子供は黙ってろ
190:デフォルトの名無しさん
08/04/21 08:40:54
ほら見ろ構ってやったから調子乗っただろう
キチガイは放置が最善手
191:デフォルトの名無しさん
08/04/21 09:14:40
>>190
株できない屑野郎は黙ってろ
192:サイタマン ◆mYN3wsz7vE
08/04/21 15:12:24
まあまあ、荒れないで下さい。
初心者にもこの程度は作れるよと言いたかっただけなので。
193:デフォルトの名無しさん
08/04/21 15:24:13
>>192
株できない屑野郎は黙ってろ
194:デフォルトの名無しさん
08/04/21 20:48:01
cとc++の違い教えてくれ
195:デフォルトの名無しさん
08/04/21 20:55:15
つURLリンク(wisdom.sakura.ne.jp)
196:デフォルトの名無しさん
08/04/21 21:10:11
>>195
サンクス
197:デフォルトの名無しさん
08/04/22 14:08:41
すみません!
今、企業に面接に行ってきたのですが
一ヶ月後にプログラムを作ってきてください、また面接しましょうといわれました。
恥ずかしながら、全くの初心者なので、何からすれば良いのかわかりません。
誰かヒントを下さい!
198:デフォルトの名無しさん
08/04/22 14:17:15
>>197
君が本当にプログラミングを一度も作ったことがないということを
先方が理解していたなら、それはあちらの厄介払いだ
君が本当にプログラミングを一度も作ったことがないということを
先方が理解していなかったなら、それはあちらの勘違いだ
どちらにしてもプログラムを作る必要はないと考える
199:デフォルトの名無しさん
08/04/22 14:19:32
>>198
まーな…
PCを持ってるにもかかわらずプログラミングをしたことが全くないってのに
そういう企業や職種に応募することが正直なとこ全く信じられないんだが
200:デフォルトの名無しさん
08/04/22 15:59:20
>>197
>>198の言うとおりだと思うのだが、具体的にどんなプログラムを作れって言われたの?
言語は何を指定されたとか、OSやハードウェアは何とか。
201:デフォルトの名無しさん
08/04/22 17:02:12
博士取った新卒でも面接でソートプログラムの一つすら書けない、
そういうのは役に立たねーよとかいう話があったななんか。
202:デフォルトの名無しさん
08/04/22 17:28:45
それはソートプログラムなんて書かせるのが間違ってる
203:デフォルトの名無しさん
08/04/22 17:36:01
ソートプログラムは簡単なのの代表的だから俺がレスに書いただけで、
ちゃんとした理工学系のような履歴の人間にもプログラム全くできない、
触ったこともない奴が含まれているらしいということさ。
204:デフォルトの名無しさん
08/04/22 18:02:44
>>202
じゃあFizzBuzz
205:デフォルトの名無しさん
08/04/22 18:04:54
単純ソートならなんとか書ける
206:デフォルトの名無しさん
08/04/22 21:51:44
フリーウェアを作りたいと考えているのですが
昔VBやPowerBuilderの開発経験があるので
Basicでよいのがあればそちらを、無いなら
Basicから移行しやすい言語でフリーウェア作成向きの
言語って何がありますか?
207:デフォルトの名無しさん
08/04/22 21:56:36
HSPとかBCBを進める
208:サイタマン ◆mYN3wsz7vE
08/04/23 05:00:33
言語を選ぶ選択肢としては、自分の性格を見極めたほうがいいかもしれません。
私の場合、2chに書き捨てるような文章を書くのが得意かつ好きで、
ブログのような、ある程度、きちんとした文章を書くのが面倒だと思うタイプなので、
一番、書き手にメリットのあるPerlを好んで使っています。
ブログを書くのが好きな人にとっては、もう少し、厳格な言語がいいかもしれません。
人それぞれの性格によって、一番能力の発揮しやすい言語があると思います。
ほとんどの言語で、ほとんどの事は出来ると思いますので、
自分に合う合わないで決める事が、一番大切だと思います。
209:サイタマン ◆mYN3wsz7vE
08/04/23 05:02:54
ブログをやった事もあるのですが、
性格的に合わず3日持ちませんでした。
2chに書き込むのは好きで、何年もコテハンをやっています。
210:サイタマン ◆mYN3wsz7vE
08/04/23 05:07:01
書き手にとってメリットがあると言う事は、可読性を下げる要因になります。
逆に、可読性を上げるには、書き手にとっては自由を縛られる事になります。
211:デフォルトの名無しさん
08/04/23 05:40:04
>>208
書き手にとってPerlがメリットがあるという話、
具体例を出して書いていただけるとおもしろいですね。
212:デフォルトの名無しさん
08/04/23 05:43:58
使ったこと無いけど型宣言とかしなくても勝手に処理してくれるって事じゃないか
213:サイタマン ◆mYN3wsz7vE
08/04/23 06:43:10
>>211
例えば、ファイルを読み込んで出力するコードを書くとします。
Javaですと
import java.io.*;
class BufferedReaderTest {
public static void main(String[] args) {
try {
FileReader in = new FileReader("file.txt");
BufferedReader br = new BufferedReader(in);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
in.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
perlですと
open(IN,"<file.txt")|| die "error";
while(<IN>){
print $_;
}
こうなります。
どちらが、人間の話す自然な言語に近いかと言う事を考えた場合
Perlがより近いのではないかと思います。
214:サイタマン ◆mYN3wsz7vE
08/04/23 06:44:00
イメージとしては、
誰もが論文のように論理的文章を書く事も話す事も出来ますが、
日常的に話すように自然に話したり書いたほうが、
普通の人には楽だと思います。
日常会話では、主語が抜けたり、暗黙の了解で
省略している部分があって、
分かりにくい場合もあります。
ただ、そのおかげで普通の人間にとっては楽に話す事が出来ると思うのです。
215:サイタマン ◆mYN3wsz7vE
08/04/23 06:45:05
close(IN);
を忘れてましたねw
適当なコードですいません。
216:デフォルトの名無しさん
08/04/23 06:53:09
短い時間で、いい回答でしたね。
217:デフォルトの名無しさん
08/04/23 07:31:57
>>197
オリジナルなものを書いて持っていったら、本当に入社できる
かもしれませんね。今日のプログラム開発はプロでもアマでも
多かれ少なかれ、何らかのプログラムの剽窃になってしまいます。
そう感じさせないことは大変に難しいと思いますが、自分の一番
好きなことで、こんなものあったらいいなという、日頃思っている
ものがあったら、それを作ってみることに挑戦してみたらいかがですか。
オリジナリティが生まれるとしたら、そういうテーマ以外考えられません。
218:サイタマン ◆mYN3wsz7vE
08/04/23 07:41:11
ちなみにpythonは制御文の最後に終わりを明示する},endなどの
マークが無いので制御文がどこで終わっているのか
分かりにくいと言う基本的な欠点があるので、
あまり好きではありません。
pythonだと
if a == b :
print '1'
print '2'
perlの場合
if($a==$b){
print '1';
}
print '2';
こうなり、制御文はperlのほうが分かりやすいです。
219:デフォルトの名無しさん
08/04/23 07:44:00
perl やPHPはわかりにくいよ わざと書く人が難解にしてるのかもしれんが
220:デフォルトの名無しさん
08/04/23 07:59:04
>>218
サイタマンって言語あれこれきちんと使ってから
批評してるんだな、感心した
221:サイタマン ◆mYN3wsz7vE
08/04/23 07:59:58
>>219
perlが分かりにくい面は否めないと思います。
どこに価値を置くかと言う点もありますね。
先ほどのpythonの制御文の欠点ですが、
自分は制御文で複雑な事をする癖があるので、
Pythonで制御文を書くと、どこまでがこの制御文の範囲なのか
訳が分からなくなってしまいます。
222:デフォルトの名無しさん
08/04/23 08:00:00
>>218
Python使いだが、特に分かりづらいということはないかな。
Perlは省略した表現ばっかりで本当に魂捧げないと
リファレンス片手じゃないと打ち込めないw正規表現が使いやすいのはいいけどな
223:デフォルトの名無しさん
08/04/23 08:01:46
>>221
クラスを使って、メッソドを静的に扱う。関数を同じに扱う。
@staticmethod
def hoge(x,y,z):
とか。こうして細切れにすれば、問題ないと思う。
普段からルーチンを一機能につき一つ設ける癖をつければいいとおもうよ
224:サイタマン ◆mYN3wsz7vE
08/04/23 08:07:48
>>223
そうすると、書き手にとっては非常に面倒になってしまいます。
先ほどから書いてありますが、自分は人間にとって書きやすい事を重要視していますので、
書きにくいと、生産性が落ち、面倒になってしまうんです。
225:サイタマン ◆mYN3wsz7vE
08/04/23 08:11:11
直感的に書きたい事を書きたいままに書くと言うのが、
一番、プログラムの楽しさを味わえると思います。
面倒な要素を出来るだけ排除する事で、人間はやる気や生産性が上がるんです。
226:デフォルトの名無しさん
08/04/23 08:14:05
なるべく短く簡潔にすることが大事と思う
いろいろと工夫するのは駄目で便利な機能は使うべきと思う
227:デフォルトの名無しさん
08/04/23 08:20:57
>>224
長々とした処理を書き続ける方が気苦労多いよ。
ローカルスコープの量は最小限に、
一度作った関数は再利用できるように、ってやらないと
後日自分が作ったもの読んだ時意味不明になるよ。
228:デフォルトの名無しさん
08/04/23 08:22:07
>>227については、
入力補完しまくってくれるIDE使ってくれるなら話が変わってくるか。
だけどPerlって長々とだらだらとしたものを書くようなことを
推奨してるとは思えないんだけどなあ。
229:サイタマン ◆mYN3wsz7vE
08/04/23 08:28:24
>>227
自分は汎用以外のオブジェクトを多く作るのは
意味が無いと思ってます。
一つの処理に対しては、一つの流れとして書くほうが自然で
分かりやすいと思います。
一つ一つの処理にオブジェクトを呼び出すのは遅くなる原因となりますし、
何より、オブジェクトの数が多くなると管理も大変になります。
多く使う汎用処理のみオブジェクト化すればいいと思ってます。
230:デフォルトの名無しさん
08/04/23 08:40:59
>>229
分かった、俺の負けだ‥
いつの間にサイタマンはこんなに強化されたんだw
キチンと自分の理念を持ってコーディングできてるってうらやましいな‥
231:デフォルトの名無しさん
08/04/23 09:14:40
自演にしか見えないモレは心が病んでるのか・・・
Perlが書き捨て用に適していて、その用途の場合はわかりやすいように
関数とか作らなくてもいいんじゃね、ってのには賛成するが。
232:デフォルトの名無しさん
08/04/23 09:15:38
数分置きに、だらだらとチラシの裏を書くやつ、どっかの掲示板でも見たおぼえあるぞ。
233:デフォルトの名無しさん
08/04/23 09:34:30
コテつけてる時点で病気なのでスルー推奨
234:デフォルトの名無しさん
08/04/23 09:40:36
サイタマンは昔から自作自演ばっかりだったよ、
株板で相手にされないからこっちに流れてきたんじゃないの
235:デフォルトの名無しさん
08/04/23 09:41:56
スルーできてない人がスルー推奨してもね。
ボクはキミを無視しちゃいますよ〜というのを、無視できずにアピールしちゃうことほど
「負け」属性の強いレスは無いな。
236:デフォルトの名無しさん
08/04/23 09:43:08
さっさと市況板にもどったら?
もう市場開いてるでしょ
237:235
08/04/23 09:43:45
は?俺コーディングテクニック最強なんですが?
>>236は負け宣言だと思って言いよね?
バカジャネーノw
238:サイタマン ◆mYN3wsz7vE
08/04/23 09:44:51
まあまあ、有益な情報交換しましょう。
自作自演はしてませんよ。
239:デフォルトの名無しさん
08/04/23 09:46:33
>>238
俺がレスしてるのを自演とか言ってる奴がいるんだが
別人なんだけどなあ、
ニュース速報でサイタマンが出たてのころと比べたら
本当に強化されてて感心したんだが。
2chブラウザ作るっての公言して本当に作ったしさ。すげーと思うわ。
というわけでサイタマン、さっさとソース出せ
240:デフォルトの名無しさん
08/04/23 09:51:39
そ ら ま た 自 演 だ
241:デフォルトの名無しさん
08/04/23 09:54:57
>>223
初心者用のスレだから、質問します。
普段からルーチンを一機能につき一つ設ける、のルーチンの意味がわかりません。
242:サイタマン ◆mYN3wsz7vE
08/04/23 10:08:28
>>239
あれから音声読み出し機能を付けたのですが、
視覚障害者の為の2chブラウザにして配布しようかな〜と思ってます。
今のブラウザは株のトレードとセットになっているので、
2chブラウザだけを取り出しての配布になると思います。
いろいろやる事があって、今すぐには配布できませんが、
配布するので、待ってくださいね。
>>241
サブルーチンです。
perlで書くと
my $d=&call(1,2);
print $d;#結果は3
sub call{
my($a,$b)=@_;
my $c=$a+$b;
return $c;
}
243:サイタマン ◆mYN3wsz7vE
08/04/23 10:20:13
上の単純な計算までサブルーチンで行うのは
無駄だと思います。
my $c=1+2;
print $c;
で済むのですから。
こっちのほうが普通の人には分かりやすいと思います。
数多く、同じ関数を呼び出すのであれば、
関数化すればいいと思います。
それは、個人個人の判断になると思います。
一つ言えるのは、あまりに関数を作りすぎると、コーディングが面倒な事、スピードが遅くなる事、
この関数はどこにあるのか、何をしているのか訳が分からなくなる事です。管理上、不便だと思います。
244:デフォルトの名無しさん
08/04/23 10:33:09
再利用できると感じたら関数化、程度でいいと思う。
245:サイタマン ◆mYN3wsz7vE
08/04/23 11:10:28
>>244
そうだね。
一応、上に書いた呼び出し方は古いから
oopでの呼び出し方も書いておきます。
use Test;
my $obj = Test->new();
my $d=$obj->call(1,2);
print $d;#結果は3
package Test;
sub new {
my $pkg = shift;
bless {},$pkg;
}
sub call{
my $self = shift;
my($a,$b)=@_;
my $c=$a+$b;
return $c;
}
1;
246:デフォルトの名無しさん
08/04/23 11:24:13
test(A,B) :- test(A,B,C),write(C).
test(A,B,C) :- C is A+B.
非オブジェクト指向言語ですが、これで済むんだけどなぁ。
247:デフォルトの名無しさん
08/04/23 12:52:59
これは Prolog ですが、BASIC だって似たようなものでしょう。
>>245 があまりに厚化粧で、サイタマンさんが上の方で書いていた
ご自分の好みとは随分と離れたコードを書くことも多いのだろうな
と思ったから、敢えてシンプルなものを載せました。そこで質問
なのですが、Perl の使い手にとって、オブジェクト指向とはどう
いう位置付けのものなのですか。
248:デフォルトの名無しさん
08/04/23 13:01:24
>>218
Pythonだと
if a == b:
print '1'
print '2'
Perlだと
if($a == $b){
print '1';
}
print '2';
この例じゃ、解りやすさに差があるようには思えん。
{}言語が好きか、 言語が好きか、好みの問題に過ぎないと思う。
249:デフォルトの名無しさん
08/04/23 13:15:13
perlってa,bって予約語だったっけ
250:サイタマン ◆mYN3wsz7vE
08/04/23 17:57:38
>>247
OOPする時は、サブルーチンが重複するかもしれない、
大量のコードを利用する場合に使います。
変数の競合を防ぐには局所変数で対応できますが、
関数の競合を防ぐにはOOPでなければ出来ませんから。
サブルーチン競合を心配するようなプログラムになると、
自然と使うようになります。
>>248
perlの場合はコンパイルエラーを吐いてくれますが、
pythonの場合はインデントミスが生じた場合、
エラーを吐いてくれないので、どこでエラーが生じるのかの見極めが難しいのです。
251:サイタマン ◆mYN3wsz7vE
08/04/23 18:00:23
エラーを吐いてくれないと、どこでミスしているのかが分からず、
プログラムが誤動作してしまい、バグ発見に時間が掛かります。
252:サイタマン ◆mYN3wsz7vE
08/04/23 18:21:15
OOPは自分で作ったサブルーチンを、後で再利用したい場合にも使います。
自分は利用できそうなサブルーチンをまとめてあります。
package名を付けて、
そこにサブルーチン名を貼り付けるだけで、
簡単に出来ますし、関数の競合の心配がなくなります。
253:デフォルトの名無しさん
08/04/23 21:11:33
>>251
その点に関しては、perlの方がエラー出さなくて分かりにくいだろ。
未使用の変数を参照してもOKだし、さらに勝手に0や空文字と解釈してくれる。
あと、
if($x = 1){print "OK"}
とかもエラーにならない。
254:サイタマン ◆mYN3wsz7vE
08/04/23 21:29:59
>>253
Perlにはwaningsと言うモジュールがあり、
if($x=1){print "OK"}
と書くと、
Found =in conditional, Should be == at Test.pl line 2
などと、
==にしなさいと警告してくれます。
未使用の変数の参照に関しても警告してくれます。
255:デフォルトの名無しさん
08/04/23 21:31:00
>>218
end = 1
if a == b :
print '1'
print '2'
end
でOK
256:デフォルトの名無しさん
08/04/23 21:35:34
>>254
だったら最初からやれ、って話だよ
257:サイタマン ◆mYN3wsz7vE
08/04/23 21:45:23
>>255
それなら
if a == b :
print '1'
#end
print '2'
こっちのほうがいいのでは?
>>256
もう一つpythonが自分に向いてない理由は、
コピーペーストがやりにくいと言う点です。
自分は、怠け者なので、
コードを書くよりも、昔書いたコードをコピーペーストするほうが多いのですが、
Pythonだと、インデントに意味を持っているので、
コピーペーストするといちいちインデントを揃えるのが面倒なのです。
258:デフォルトの名無しさん
08/04/23 21:46:32
上の話を見てると、PerlのOOPって大したことないのか?と思ってしまうが
259:サイタマン ◆mYN3wsz7vE
08/04/23 21:46:37
257はインデントを揃えたつもりでしたが、ミスしました・・
if a == b :
print '1'
#end
print '2'
260:サイタマン ◆mYN3wsz7vE
08/04/23 21:56:08
>>258
PerlのOOPはクラスのインスタンス化、操作、破棄はもちろん
継承、多重継承、デザインパターンで言うとsingleton
やAUTOLOADを使ったDecoraterなど
ほとんどの機能はありますよ。
261:デフォルトの名無しさん
08/04/23 22:03:36
blessって何だ?
262:サイタマン ◆mYN3wsz7vE
08/04/23 22:09:12
オブジェクトを結びつける
263:デフォルトの名無しさん
08/04/23 22:42:31
Perlに今更持ち上げるだけの価値があるとは思えない
何かにつけてややこしいし
264:サイタマン ◆mYN3wsz7vE
08/04/23 22:46:00
自分も新しい言語模索してるんですが、
なかなか、いい言語が無くて・・・
何か無いですかね・・・
265:デフォルトの名無しさん
08/04/23 22:56:14
自演までして「出来る人」アピールしても、言ってることがすごく浅い
比較になってない比較で啓蒙するくらいperl大好きみたいだから、perlだけやってればいいよ
266:サイタマン ◆mYN3wsz7vE
08/04/23 22:58:32
>>265
自演はしてませんよ。
そう言われるのなら、
あなたが具体的にレベルの高い議論してはどうでしょう?
267:デフォルトの名無しさん
08/04/23 23:07:14
>>260
ああ、一通りあるのね
あんたが「PerlでのOOP導入の利点とは、関数名の衝突を避けられること」
なんて微妙なことを書いてるもんだから
268:デフォルトの名無しさん
08/04/23 23:08:06
サイタマンの過去の発言からして
自演は良くあること
269:サイタマン ◆mYN3wsz7vE
08/04/23 23:15:17
>>267
自分がOOPを使う一番のメリットは、
関数の衝突を避ける事がメインですね。
動的束縛とポリモフィズムの利用や
デザインパターンの技法を使って
オブジェクトを細かくコマンド化したり
細分化する事には余りメリットを感じません。
270:サイタマン ◆mYN3wsz7vE
08/04/23 23:17:52
まあ、業務用の同じようなものばかり作ってる人にはデザインパターンは
効果的なんでしょうが。。。
271:デフォルトの名無しさん
08/04/23 23:19:44
サイタマンに同調する気はないが、
デザインパターン本を見てまねするのは末期な感じがする。
さすがにそこまでやっちゃうと考える力、判断する力がつかなくなるw
272:デフォルトの名無しさん
08/04/23 23:24:07
デザインパターン的発想ができるようになるってのが重要なわけだぁね。
273:デフォルトの名無しさん
08/04/23 23:30:12
あくまで参考として見ておいたほうがよくて、
やはり自分で設計できるようにしたほうがいいと思うよ。
大規模開発などに携わる場合は、必要な知識かもしれないけど
個人でやる場合は無視したほうがいい。
274:デフォルトの名無しさん
08/04/23 23:33:55
そうかねえ
例えば有名なGoFの23パターンだが、あれを全部とは言わずとも
大体を自力で発見できるかと言われると・・・・・・いくつか自信がない
何よりもまず、有名な手法に名前がつけられているって事が重要
名前さえあれば議論のまな板に乗せられる。伝達できる
275:デフォルトの名無しさん
08/04/23 23:54:10
>>250
いや、やはり同じこと。
if($a == $b){
print '1';
}
print '2';
を間違えて、
if($a == $b){
print '1';
print '2';
}
と書いた場合、Perlのコンパイラはエラーを吐かないだろう。
276:デフォルトの名無しさん
08/04/23 23:56:03
このサイタマンとやらがデザインパターン知ってたら
「ほら、Perlだったらこのパターン作るの簡単ですよ」
みたいな事ばっかり言うんだろうな・・
277:サイタマン ◆mYN3wsz7vE
08/04/24 00:53:00
>>275
その構文と比較するのはちょっと違います。
何故かと言うと、}の位置で一目で制御文の終了位置が分かるからです。
比較してpytyonではインデントしかありません。
>>276
デザインパターンくらい知ってますが
意味が無いので、使わないだけです。
278:デフォルトの名無しさん
08/04/24 00:54:33
つーか、Rubyじゃ駄目なのか?
perlより格段にマシだと思うんだが
279:デフォルトの名無しさん
08/04/24 00:58:30
>>277
思考の硬直化が見られるな。
デザパタに固執する事とデザパタを無碍にする事は
どちらも似たようなレベル。
280:サイタマン ◆mYN3wsz7vE
08/04/24 00:58:41
>>278
Rubyの構文自体に不満は無いですが、
遅すぎるのと、まだ枯れていないので、
バグがあるのではないかと言う事、
Perlでは検索して
やりたい事に合うモジュールを
直感的に見つけるられるのですが、
そのモジュールが少ない事がありますね。
Singleton Factory Template
辺りは良く使われてます。
Sladeにも使われてます。
281:サイタマン ◆mYN3wsz7vE
08/04/24 01:21:51
一応、Templateパターンもどきで書いてみました。
use Test;
my $obj = Test->new();
my $d=$obj->call(1,2);
#結果3
package Test;
sub new {
my $pkg = shift;
bless {},$pkg;
}
sub call{
my $self = shift;
my($a,$b)=@_;
my $c=$self->do_task($a,$b);
$self->do_print($c);
}
sub do_task{
my $self = shift;
my($a,$b)=@_;
my $c=$a+$b;
return $c;
}
sub do_print{
my $self = shift;
my($a)=@_;
print $a;
}
1;
282:デフォルトの名無しさん
08/04/24 01:33:53
$aとか$bとか使う時点でもうダメだな。
283:デフォルトの名無しさん
08/04/24 02:02:21
>>283
java,c,vc,basicくらいしか知らない学生だが
そのプログラムを見る限りperlって直感的に分かりずらいな。
あとsageろ
284:サイタマン ◆mYN3wsz7vE
08/04/24 02:16:00
まあ、perlは慣れないと難しいかもしれませんね。
ただ、慣れると非常に書き手にとってメリットのある言語です。
285:デフォルトの名無しさん
08/04/24 02:33:01
サイタマン独演会になってから初心者が来なくなったなw
286:サイタマン ◆mYN3wsz7vE
08/04/24 02:38:21
少し自重します・・・
287:デフォルトの名無しさん
08/04/24 05:47:20
>>283
>>283はsageているじゃん。
288:デフォルトの名無しさん
08/04/24 05:57:45
3年前にニュース速報でプログラムなら負けない自信があるとほざいているサイタマンが
初心者スレで書き込み&名無しで自画自賛の自演してて笑った
528 名前:埼玉mikky ◆jM/TIxxEd. :2005/04/25(月) 21:49:44 ID:A5d3v8LD ?##
2chはいろんな分野の博識者が多くて為になるなぁ。
おれもPCやプログラムの事なら負けない自信あるけど、
それ以外の専門的な知識がいろいろ手に入るから便利だわ。
↓↓そして3年後↓↓
初心者のためのプログラミング言語ガイド Part8
スレリンク(tech板)
192 名前:サイタマン ◆mYN3wsz7vE [] 投稿日:2008/04/21(月) 15:12:24
まあまあ、荒れないで下さい。
初心者にもこの程度は作れるよと言いたかっただけなので。
自分で初心者って言い切ってるwwwwwwwwwww
他にもいろいろ初心者スレに出入りwwwwワロス
負けない自信のある人間が初心者スレに出入りしている矛盾!
289:デフォルトの名無しさん
08/04/24 06:05:50
【頭隠して】虚言病のサイタマン【尻隠さず】
スレリンク(market板)
サイタマン発言まとめスレ
東京kittyに憧れ埼玉kittyというコテを名乗る、その後埼玉mikkyを経て現在サイタマン
ニート歴10年。ニート鈴木という名前でテレビ出演歴あり
株を始めて3年目で100万円を70万に減らす
自称月収200万円のIT企業だが睡眠時間以外は投資一般スレ、
ニュース速報、プログラム板に常駐
特徴は初心者のスレッドにいって別のスレで読んだことをあたかも自分の意見のように
コピペすることだけど、専門家につっこまれたら逃亡する。コテをつけはじめてから
この行動パターンは不変である。自作自演も得意
290:サイタマン ◆mYN3wsz7vE
08/04/24 06:06:44
ちょおおお
こんなところまで出張しないで
291:デフォルトの名無しさん
08/04/24 06:15:40
◆ここが変だよサイタマン
・自称年収4000万のIT企業社長のはずなのに起きてる時間は2chの
投資一般、ニュース速報、そして最近はプログラム板に常駐
・数億円ある両親の資産管理会社の社長の設定だったが、いつのまにか祖父の遺産を
相続して数億円は自分のものということになっている
・しかし3年間株をやって初期資金を70万以上入金できない
・MARCH卒といっていたのが最近東京六大学卒に変わってきている
・05年でプログラムは自信があるはずなのに06年にHTMLしかできないことが判明
・05年でプログラムに自信があると言い切っているのに最近初心者スレにだけ出入り
292:デフォルトの名無しさん
08/04/24 07:56:29
>>284
敗北宣言ktkr
慣れた言語が書きやすいのはあたりまえだろ。
293:デフォルトの名無しさん
08/04/24 07:57:59
あほのさいたまんに年金手帳の質問考えてきたんだけど
質問してもいいですか?
294:デフォルトの名無しさん
08/04/24 07:58:00
つい最近まで1ソースに何万行も書いてたサイタマンはどこいったの
295:キチガイ ◆Z4QrFDzwrY
08/04/24 08:26:25
>>182
>2chブラウザを作りたい人は質問に答えますよ。
では、サイタマンさんに質問します
はなもげらって何ですか?
知らないはずがないですよねえ?
2chブラウザを作ったんですからねえ
私も2chに自作プログラムで書き込むぐらいのことはやったことがあるんですよ
まさかまさか、SaitamanSpeedとかいう専ブラが実は画面しか作ってなくて、
機能は何も実装してないなんてことはないんですよねえ?
296:デフォルトの名無しさん
08/04/24 08:34:56
関数型言語初心者で、ちょっと書けるようにはなったんですが、最近
CとかC++のソースを見なきゃいけない事態になりました。こっちは
まったくやったことありません。
これって何でしょうか、何でこんなにあーでもない、こーでもない
って書き方してるんでしょうかね。あと、一つの変数に何回も
値を代入して、それによって関数の戻り値が変ったりするなど、
すごく分かりにくいです。
あと、ポインタってありますね。これとか全く意味不明というか、
混乱の元だと思うんですが。何でコーディングしながら、メモリ
の状態を考えないといけないんでしょうか。変数に値がbind
されるだけではなく、アドレスを指し示している変数が存在
する必要が分かりません。
正直、今の作業が終わったらCやC++みたいなのはずっと
やらないで済ましたいんですが、可能なんでしょうか。
297:デフォルトの名無しさん
08/04/24 08:39:05
>>296
今はサイタマンを糾弾している最中だ。
質問は禁止している。
298:デフォルトの名無しさん
08/04/24 08:52:42
>>296
可能性のお話なら、「可能」だろう
299:デフォルトの名無しさん
08/04/24 09:34:16
>>296
どこぞの表現を借りるなら、C系は「コンピュータがどう動くか」のモデル化を主目的としているのに対し、
関数型言語は「計算というものがどう振る舞うか」のモデル化を主目的としている。
マシン語は使いたくないが、しかしコンピュータの性能をそれなりに高い純度で引き出したい、という場合、
前者を使わないわけにはいかなくなる。
従って、君がCやC++を「やらないで済ます」ことができるかどうかは、たとえば、
君の作るものがコンピュータの性能をどれくらい引き出す必要のあるものか、に依ることになる。
あと、より「社会的な」問題としては、ユーザー人口の少ない言語は処理系のライブラリ、ドキュメント、
相談相手etc、色んな物の少なさで苦労するかもしれないから、それに耐えられるかどうか、なんてのも。
ただちょっと気になったんだけど、「関数型言語初心者」でC/C++を「まったくやったことない」ってことは、
つまり君の質問の「登場人物」のどれについても、まともに理解していない段階なわけだよね?
そういう段階にいるうちは、批判精神は胸の内にしまって、黙々と勉強を続けたほうがいいと思うよ。
それよりも、>>298が仄めかしているように、自分の立ち位置(作りたいものとか、業務内容とか)を
ハッキリ表明して、「こういう状況にあるのだが、CやC++をやらずに済むだろうか?」という適切な質問を書く、
ということができない自分への批判精神を磨くほうが大事だと思う。
300:デフォルトの名無しさん
08/04/24 09:47:50
>>277
Pythonの場合も、インデントで制御文の終了位置が分かる。
>>277の主張は、>>277にとっては「}」のほうが分かりやすいという感慨にのみ立脚している。
だから、「{」〜「}」よりも「 」のほうが分かりやすい人にとっては
無意味。
現実には、Pythonのコードを読みやすいと思っている人は少なくないから、>>277のような
感じ方をする人が多数派だとはいいきれない。
また、仮にインデントが分かりにくかったならば、{〜}言語や(〜)言語やbegin〜end言語で
プログラマーがコンパイラによって必要とされていないインデントを多用してコードを書く理由は
なんだろうか?
Basic系みたいに、
If a = b Then
Print '1'
EndIf
Print '2'
なんてやれると、これは「{」〜「}」よりも圧倒的に分かりやすい。「}」は
それ自体何の終わりかわからないが、「EndIf」が「If」制御文の終わりであることははっきりして
いる。しかし、Basic系でも実際のコードではインデントが多用されている。
つまり、インデントが一番分かりやすい。
Perlの美徳としてはっきりしているのは、読みやすさではなく、書く場合の労力が
小さいことだろう。
301:296
08/04/24 10:06:05
>>299
ちょっと分からないのは、僕等がやろうとしているのは計算処理であって、特定
コンピュータがどう動くかを云々することじゃないって認識なんですが、違う
ということですか?
コンピュータのメモリがどうのって話は、ハード屋とか、コンパイラ作ってる
人とか、OSのコア部分作ってる人たちの分野じゃないのですか?こういう
のはごく限られたその方面のエキスパート達がやればいいんじゃないかと
思います。
一般のプログラマってのは、そういう話とあまり関係なくやりたいことを記述
できればいいと思うんですよね。パフォーマンスがどうとか、そういうのは
コンパイラがやればいいと思っちゃう。そりゃ無理難題をコード化すれば
メモリオーバしちゃうでしょうけど。メモリのアドレスがどうとか考えるのは
やり過ぎじゃないですか?
関数型がマイナーだというのが僕は信じられません。Cなんかと比べて
段違いにわかりやすいと思うのですが。
302:デフォルトの名無しさん
08/04/24 10:14:44
>>301
俺らがやろうとしているのは計算処理ではないよ。
コンピュータに計算処理をさせることだ。
303:デフォルトの名無しさん
08/04/24 10:16:09
俺はCなどの手続き型言語で挫折して、
Lispを弄ってみた。するとどうだろう。
書き方も構文のあり方も、ルールも違う言語なのかわからんが
コーディングが楽しくなってきた。
そしてHaskellに手を出してみた。面白い。
そのついでに、Pythonに手出してみた。おお、理解できるぞ。
そして今はCに手出してる。
関数型言語の考え方(リスト再帰、cdr再帰、無名関数など)は
かなり有用であると思えた。
304:デフォルトの名無しさん
08/04/24 10:25:40
>>301
クルマでも、オートマの方がいいだろって人もいれば、マニュアル車じゃないとダメって人もいるんだよ。
305:296
08/04/24 10:52:11
>>302
計算処理をさせるんですけど、Cとかってズラズラと手順を長々と書いてて
面倒じゃないですか?
>>303
Cに戻って感想はいかがでしょうか?やっぱり面倒じゃないでしょうか?
>>304
マニュアル車はどんどん減ってきてますよね。コンピュータ言語も同じような
道を辿るべきじゃないかと思います。
306:デフォルトの名無しさん
08/04/24 10:56:27
爆釣ですね。
307:デフォルトの名無しさん
08/04/24 11:06:50
>>305
手続き型は、面倒だね。
(setf x 10) とか、式一つ書くだけでそれで終えられる
関数型に比べると、変数の宣言とか
パラメータの型指定とか
{}みたいなブレースとか戻り値とか。
指定するのは面倒くさいw
でも大半のLL言語及びLispなどの言語は
Cで実装されてるので学習中w
308:デフォルトの名無しさん
08/04/24 11:08:09
>>305
> コンピュータ言語も同じような道を辿るべきじゃないかと思います。
べきっていうか、現に辿ってるよ。
関数型は残念ながら未だマイナーだけど、いわゆるLLが元気なのは、そういう流れなわけで。
ただ、実行速度を要求される場面というのは、君が思っているほど少なくないし、
従って、一部のエキスパートが何とかすればいい、と言い切るところまでは、少なくともまだ行ってない。
たとえばゲームは、遥か未来ならともかく、しばらくは「その時代のマシンの最高のパフォーマンス」を
引き出すことと戦わなくちゃならないだろうし、
一般人に広く使われるようなGUIアプリの挙動も、「待ち時間をどこまでもゼロに近づける」ことを
あっけらかんと要求される以上、言語の実行速度の問題からはしばらく離れられないだろう。
309:デフォルトの名無しさん
08/04/24 11:11:38
>>307
最初の例、変じゃない? 手続き型でも、動的型付け言語なら x = 10; 的な記述で済むでしょ。
あとLLの後ろに「言語」は付けないほうが。
310:296
08/04/24 11:31:36
>>307
やはり、Lisp自体の実装レベルになると、Cなどが登場するって
ことですよね。コンパイラレベルというか。そこまでやる気には
ならないんですよ。
>>308
確かにゲームはそうですけど、一般のゲームプログラマってそれを
構成する基本部品のようなものまで自力で実装してるんでしょうか?
その辺のライブラリはやはり一部の人たちの手によって作られる
べきな気がしますが。
例えば、JavaなんかもVMが間に入って解釈するようなことやって
ますけど、広く使われてますよね。実際にCなんかよりずっと遅い
って言われてますし。関数型言語が遅いから広まらないっていう
理由がよく分かりません。Javaよりも遅いってことなんでしょうか?
311:デフォルトの名無しさん
08/04/24 11:35:21
>>309
確かにおかしいかも。
(defmacro)をつかったマクロのほうがよかったのかな。
L言語とすべきでした orz
>>310
pythonだとstructモジュール使って
キャストを行わせるとか、Cライクな書き方があったり、
またPython.hを使ってC内部にPythonのlistとかが使えるようになるとか
そういうことが書かれてて、分からないとかなりまずいなあと思ったので、
何となく学習を始めてみた。
312:デフォルトの名無しさん
08/04/24 11:55:48
>>310
> 確かにゲームはそうですけど、一般のゲームプログラマって〜
俺がゲームの話をしたのは、「最高のパフォーマンスを引き出すことと戦わなくちゃならない世界」
の例としてなんだから、高い速度が出るよう組まれたライブラリを、高い速度の出る言語から
呼び出さなきゃいけない状況のことを言ってるのはわかるでしょ?
基本部品も、基本部品を使う箇所も、どこも速度で妥協できない、そんな世界ではCやC++の出番になる、
そしてそれは一部のエキスパートの世界というわけではない、という話をしてるんだよ。
「その辺のライブラリはやはり一部の人たちの手によって作られるべきな気がしますが」
って、ライブラリが一部の凄腕の手で高性能を叩き出すよう書かれるべきなのは、関数型言語も同じだってばw
> 関数型言語が遅いから広まらないっていう理由がよく分かりません。
俺が書いてきたのはCやC++の存在理由であって、関数型言語が広まらない理由ではないから、
言ってないことをわかられても困るという意味で、わからなくて正解。
ちなみに、俺が趣味100%で長年ちまちま作ってるマイLispは、C++で書かれてるんだけど、
整数をインクリメントするだけの単純なコードで比較すると、Javaよりは遅いけど、Perlよりは倍くらい速い。
俺程度の人間の実装でこれだから、Lispはそんなに遅い言語ではないね。どうも世間には偏見があるけど。
313:296
08/04/24 12:06:10
>>311
なるほど、だけどPythonにポインタみたいなものが登場する
わけではないんですよね?Cで一番気になるのが、ある変数
の中身が一体どうなってんのか分からなくなることなのです。
>>312
ゲーム業界では、末端のプログラマでもCとかで書いちゃって
るんですか。自分はもっとツールみたいなものを操作している
だけなのかと思ってました。凄いというか、大丈夫なんでしょうかね、
そんな末端のプログラマにまかせちゃって。尊敬できます。
Javaより遅いってなると、今のプログラム業界ではいまいち
使い道無いんですかね。そのMyLispはスクリプト言語ですか?
コンパイラ作って最適化してもダメなんですかね。
314:デフォルトの名無しさん
08/04/24 12:10:56
>>313
> Javaより遅いってなると、今のプログラム業界ではいまいち使い道無いんですかね。
なんでそうなるの?
ところで君、関数型言語の初心者で、CとC++については、今回いじる以前は未経験だったんだよね?
つまり、どの言語をどのくらい経験してる人なん?
315:311
08/04/24 12:11:55
Cで書くといっても、ライブラリ全く使わないなんてことはあり得ないから、
よほどコマンドラインに特化したアプリ(viやらwcやら)じゃなければ
見た感じPythonと変わらないよ。
316:296
08/04/24 12:17:07
>>314
SchemeとHaskellを勉強中です。その他は概要をちょっと
聞いたことがあるぐらいですね。
今のところ、関数型がマイナなのは速度の問題だ、と仰って
いたと思うので、率直な疑問を書いただけです。
317:デフォルトの名無しさん
08/04/24 12:17:16
>>313
ちなみにCommon Lispは大抵の処理系がネイティブ吐けるし、
速度が出るように書かれたコードをコンパイルすれば、Javaよりずっと速いよ。
C/C++よりは遅いけど。
ただし、そこまで速度を重視したCommon Lispコードというのは、
関数型言語特有の書きやすさとか美しさとかからは、いー感じに離れてしまっている。
318:デフォルトの名無しさん
08/04/24 12:23:40
>>316
>>308で「いわゆるLLが元気」って書いた。LLがJavaより遅いことには、>>312でPerlの例を出してる。
なのになんで
> Javaより遅いってなると、今のプログラム業界ではいまいち使い道無いんですかね。
になっちゃうの? って話。
> 今のところ、関数型がマイナなのは速度の問題だ、と仰っていたと思うので、
いや、>>312で「俺が書いてきたのはCやC++の存在理由であって、関数型言語が広まらない理由ではない」
って書いてるのに、なんで次の>>313で「関数型がマイナなのは速度の問題だ、と仰っていた」前提の
レスを書くんだよ?
せめて人が書いたことは踏まえてくれよ。
> SchemeとHaskellを勉強中です。その他は概要をちょっと
つまり、まだ何かソフトウェアを「作り上げた」経験は無い、ってこと?
319:デフォルトの名無しさん
08/04/24 12:32:42
>>296
おもしろく読ませてもらったお礼に、関係ない話を書きます。
ある中堅企業が、Workstationを入れて、C/C++でシステムを
開発していました。それを見習った傘下の企業が同じシステムを
入れてLispではるかに気の利いたアプリを量産しました。
中小企業ってすばらしいですね。それとも、この企業には
4GBのメモリーは不要で512MBのWindowsXPにするべき
だと思いますか。
320:デフォルトの名無しさん
08/04/24 12:42:25
>>301
用途に応じて使用言語を変えるのが正解。HDDのデフラグやりたきゃCやC++、AIならLisp。
>>305
CやC++で手順をずらずら書くのは面倒なんだが、クソなアルゴリズムでも意外に速いことが
多い。
>>310
LispはCよりも古くからあるから、LispでLispを実装することもできるはず。
JavaのGUIの立ち上がりなどは見るからにもさーりだが、単純なことを反復させるのに
Javaはそう遅くない。
321:デフォルトの名無しさん
08/04/24 12:42:45
ジャパン語でおk
322:デフォルトの名無しさん
08/04/24 12:51:17
Lispって言語というより式だから、
うまく言ってたらパスカルの計算機が発明されていた
時代に合ってもおかしくなかったような気がするわ
323:デフォルトの名無しさん
08/04/24 12:56:06
演算も逆ポーランド記法みたいなもんだな
いかにも計算機にとって処理が得意そうなフォーマットなのに、何で遅いんだろ
324:323
08/04/24 12:59:05
Lispが遅いっていう認識がそもそも誤り?教えてエライ人
325:デフォルトの名無しさん
08/04/24 13:01:52
何とくらべて遅いのか、どういうコード・アルゴリズムで遅いのか
とか全く書いてないから意味が無い。
326:デフォルトの名無しさん
08/04/24 13:03:35
>>324
Lispで実装されたLispは遅い。
Cで実装されたLispは実行速度はC並みに早い。
モノによるんじゃないか?
SBCLとかCLISPとか色々あるから。
327:デフォルトの名無しさん
08/04/24 13:17:18
「一般のプログラマ」ってのが何を指しているのか分からないけど、
一般にはソフトウェアってのは工業製品もしくはその部品だ。
よって、その立場に開発環境も縛られることが多い。
家電や組み込み機器のソフトウェアを、C+アセンブラで書けばメモリ16MB・
200MHzのCPUでいけるけど、Javaで書けばメモリ64MB・300MHzのCPUが必要、
そのために1台あたりの製造コストは1200円上がる。3年で100万セット製造
するので、12億円のコスト増。
なんてときに、ソフトウェアの開発のしやすさの都合なんかが顧みられる
ことは、ほぼありえないよ。それによってOEM受注のコンペに負ける
かもしれないしね。
328:296
08/04/24 13:20:24
>>318
CやC++が存在しているのはパフォーマンスがよいからですよね。
だけど、コンパイラや必要部分だけの実装で使うだけでよいならば、
その他の領域では不要だということですね。
つまり、CやC++は通常のアプリ作成には基本的に不要だという
ことでしょうか。自分はああいうものが一般プログラマの使用言語
として蔓延ってる状況が全く理解不能なのです。関数型言語の
ほうが遥に労力が減るし、間違いも起きにくいと思うんですよね。
ちなみに自分は小さな練習程度のアプリぐらいしか組んだことは
ありません。大きなシステムみたいなものの開発は未体験です。
329:デフォルトの名無しさん
08/04/24 13:26:18
Cが受け入れられたのは機械語を否定しなかったから
C++が受け入れられたのはCを否定しなかったから
使ったことないけど、Luaなどはそういう空気を読めている
で、問題は、C/C++を否定する言語が受け入れられるかどうかだと思う
330:296
08/04/24 13:26:50
>>319
これは要するにメモリや計算速度が贅沢に使えるんだからLispでも
いいじゃないか?ってことでしょうか。
自分もそう思うんですよね。Javaも詳しくは知りませんが、登場したとき
同じようなことが言われていたそうですね。Cよりもずっと遅いけど、
マシンが早くなれば問題無いんだと。
CやC++なんかでちょっとくらい速度が早くなったって、関係無いアプリが
多いんじゃないかと思うんですが。だけど、関数型言語って何故かマイナ
だとされちゃってますね。凄く不思議ですよ。
331:296
08/04/24 13:36:31
>>329
そこが理解できない。
何で人間が機械語を分からないといけないんでしょうか?そんなの
分からなくて当然でしょ。人間が何したいかを書けば、勝手に機械語に
変換できればいいわけで、それはコンパイラとかの役目ですよね。
コンパイラやOS作るんじゃないのにどうしてそんな低レベルなことを
知らないといかんのか?ってのが分からない。
332:デフォルトの名無しさん
08/04/24 14:00:18
コンパイラ・OS・ゲーム・組み込み機器・・・と切り捨てていって、
最終的に何が残るのかな?
Webアプリも遅くてイライラすることが多いし
333:デフォルトの名無しさん
08/04/24 14:16:38
296の疑問ってのは、機械に任せれば自動でできることを、なぜ人間がやるのか、
という一般的な疑問だよね。一次二次産業一般にあてはまる疑問。
これは哲学や社会科学の問題ではないだろうか。
・人間がやったほうが安いから。
・人間がやったほうが精度が高いから。
・機械に任せちゃうと人間の仕事を奪うから。というか、そもそも社会とは
効率を指向して成り立っているわけではないから。
とか。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5373日前に更新/251 KB
担当:undef