1 :
デフォルトの名無しさん :
2009/05/15(金) 00:03:56 100.times do p 'eachかわいいよeach' end
Rubyに見える。
Rubyだね gotoかわいいよgoto
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
またアイちゃんか
>5 内部で使ってるかと言うと、そういうワケでも無さそうだしな…
もう一年以上前のことですが、社内にRubyを広めようと ミニ講習会を開催しました。私が講師を務めることに なりました。さて、開始早々だったと思いますが、 Rubyのいいところとしてイテレータ、ハッシュとeachを を使う処理の説明を始めたところ、年配の人たちから 「それはPrologのパクリだ」との強烈な質問がでました。 私はPrologを知らないので、質問者に教えてもらったりして、 結果的に立ち往生の体になりました。どうもPrologの memberという述語がそれにあたるらしいのですが、本当の ところこのパクリ説はどんなものなのでしょうか。
どちらかというとlispのパクリですね、とでも言っておけばいい。
Rubyはいろんな既存言語のおいしいところを拝借しているので、 パクリだと言われたら、はいそのとおりと答えておく。 初めて触れた言語がRubyだったりすると、そういうものをRuby起源ニダ と思い込んで喧伝してまわり、恥をかく人がいたりする。
>>9 多分あなたがこれはRubyにしかないというような表現をして
しまって、それに質問者がカチンときたのだと思いますよ。
古い言語からアイデアを得るのは当たり前のことで少なくとも
パクリという表現は当たらないと思います。
Rubyの times メソッドをC++で書いてみた。
>>9 each ならPerl にも有る。
#include <stdio.h>
class t {
int n;
bool first;
public:
t(){ first = true; }
inline bool times(int i) {
if (first) { n = i; first = false; }
return (n-- > 0);
}
};
int main(void) {
t a;
while(a.times(5))
puts("timesかわいいtimes");
}
>>9 Prologのmember/2はそれが出てこない述語はないというくらい
重要なもので、これなくしてPrologのプログラミングは不可能
といっても過言ではない。
逆にいうと、Rubyのイテレータプログラミングにはそれだけの
可能性、奥行きがあるということ。
今後講習会では「(eachは)Prologのmemberのようなものですね」と
一言付け加えればいいのではないか。
15 :
13 :2009/05/16(土) 12:04:57
2重ループの時は、毎回deleteが必要。
>>9 Perl の foreach ではないか?
int main(void) {
t *i = new t;
while(i->times(2)) {
t *j = new t;
while(j->times(3)) {
puts("timesかわいいtimes");
}
delete j;
}
delete i;
}
Perl の each は %hash からキーと値のペアを配列として取り出す。 %langs = ( 'perl' => 'lwall', 'ruby' => 'matz', 'python' => 'guido'); while (($lang, $author) = each %langs) { print "$lang by $author¥n"; }
>>9 >「それはPrologのパクリだ」との強烈な質問がでました。
それ質問じゃねーし
18 :
イーチ :2009/05/16(土) 23:23:06
each旅立ち
eachまったなぁ!
24 :
デフォルトの名無しさん :2011/04/10(日) 07:54:01.87
eachかわいいよeach
>>25 確かにnewじゃなくていいね。いっそこれでもいい。
--
#include <cstdio>
class each {
unsigned iter;
public:
each(unsigned iter) : iter(iter) {}
operator bool() {return iter-- > 0;}
};
int main(void) {
for (each times(2); times;) {
for (each times(3); times;) {
puts("timesかわいいよtimes");
}
}
}
--
>>21 ハッァアァアァアァァアァァァアアアァアアァァアァァアァァァアァァァァァアァァァァ???
ゴミだな
はいはいゴミゴミ
ゴミだし
Rubyバカにしてる子ってさ 変数に$ついてる言語触ってるって事だよね いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう? 放射性廃棄物のほうがマシ
29 :
デフォルトの名無しさん :2011/07/21(木) 07:36:36.92
このスレクサッ! ニート臭がする((((;゚Д゚)))))))
>>28 Rubyでどんなプログラム書いてるの?
ただの自己満足プログラムでは意味がないよ?
∧,,,∧ ( ・∀・) ほー それで ( : ) し─J
32 :
デフォルトの名無しさん :2012/08/30(木) 16:46:33.82
eachかわいいよeach
>>9 member/2ではなくて、むしろbagof/3かfindall/3だと思うけど。
eachはオブジェクトを対象としているけど、Prologにはオブジェクトの概念は
ないから大分違う。
34 :
デフォルトの名無しさん :2012/10/20(土) 08:05:44.00
eachかわいいよeach
-──- 、 _________ /_____ \ > | |/⌒ヽ ⌒ヽヽ | ヽ > _______ | | / | ヽ |─| l  ̄ |/⌒ヽ ⌒ヽ\| | / ー ヘ ー ′ ´^V _ ●), 、(●)⌒i l \ / _丿 \ ̄ー ○ ー ′ _丿 . \ ` ー ´ / \ / >ー── く / ____ く / |/\/ \  ̄/ |/\/ \ l l | l l l | l 違うスレにコピペするとスネ夫がドラえもん ヽ、| | ノ ヽ、| | ノ に変わる不思議なコピペ -──- 、 _________
下だと思っていたクズが実は上だったりすると発狂する馬鹿って多いんだよね
>>663 と
>>664 を比べればすぐにわかる、というか
>>663 のあとで
>>664 >以下の利用条件を守る場合に限り利用を許可する。次回からの質問では「Qzは回答禁止」と書くこと。
とかもうね
下だと思っていたクズが実は上だったりすると発狂する馬鹿って多いんだよね
>>663 と
>>664 を比べればすぐにわかる、というか
>>663 のあとで
>>664 >以下の利用条件を守る場合に限り利用を許可する。次回からの質問では「Qzは回答禁止」と書くこと。
とかもうねクズ以下だと自覚したときの絶望には同情するがね
クズは所詮クズ しかしクズ以下の自覚ない奴は生きる資格もない
クズは所詮クズしかし下だと思っていたクズが実は上だったりすると発狂する馬鹿って多いんだよね
>>663 と
>>664 を比べればすぐにわかる、というか
>>663 のあとで
>>664 >以下の利用条件を守る場合に限り利用を許可する。次回からの質問では「Qzは回答禁止」と書くこと。
とかもうねクズ以下だと自覚したときの絶望には同情するがね
てす
test
int i; for (i = 0; i < 100; ++i) { fizzbuzz(i); }
test
&#32;
& #32;
& #32;
s/\&/\&#x26;/g s/ /\&#x20;/g s/"/\&#x22;/g s/c;/\&#3c;/g s/e;/\&#3e;/g
s/&#x26;#x5c;&#x26;#x5c;/&#x26;#x5c;&#x26;#x5c;/g s/&#x26;#x5c;&#x26;/&#x26;#x5c;&#x26;#x26;/g s/#/&#x26;#x5c;&#x26;#x23;/g s/ /&#x26;#x5c;&#x26;#x20;/g s/"/&#x26;#x5c;&#x26;#x22;/g s/c;/&#x26;#x5c;&#x26;#3c;/g s/e;/&#x26;#x5c;&#x26;#3e;/g
Groovyのeachもなかなか良いもんだよ
test
56 :
デフォルトの名無しさん :2014/04/12(土) 22:30:37.15 ID:DhQ3iHBt
58 :
デフォルトの名無しさん :2014/04/16(水) 20:29:04.15 ID:GQigrPmM