[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/10 16:01 / Filesize : 349 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

七行プログラミング part2



1 名前:デフォルトの名無しさん [02/04/15 12:09]
7行×79文字なら言語は問いません。
過去作品は>>2-5を参照。

■前スレ
pc.2ch.net/test/read.cgi/tech/984182993/

929 名前:デフォルトの名無しさん mailto:sage [02/09/27 04:12]
Part1は無茶苦茶レベル高かったからな。
各コテハン達がしのぎを削ってたね。オフで逢った人たちもいるみたいだし。
見ているだけでわくわく出来た。
Part2も、テトリスとかいい作品はいっぱいあったんだけれど、
いい作品は何故か叩かれ、下らない作品がほめられる傾向が強かったね。
実際にPart1のコテハン達が全然来なくなってしまったしね。

include省いてアーキテクチャ限定して何が楽しいんだろう・・・
と愚痴を言ってみるテスト

930 名前:デフォルトの名無しさん [02/09/27 05:47]
>>914
prolog15行はすごいね。

今lisp作ってるけどだらだら書いてたら100行超えちゃったよ・・。

931 名前:デフォルトの名無しさん mailto:sage [02/09/27 08:09]
>>929
レベルが下がったのは同意だが、他のスレのように厨が入り込みにくいし、
住民の質も平均以上であると思われ。

932 名前:デフォルトの名無しさん mailto:sage [02/09/27 11:36]
ROMしてる者ですが、基本テクニック集を作っていただけないでしょうか。
ん?私のような厨を排除するためにもテクニックは実例を見て盗め、ですか?

933 名前:デフォルトの名無しさん mailto:sage [02/09/27 11:38]
その他力本願さ加減が素敵

934 名前:デフォルトの名無しさん mailto:sage [02/09/27 11:59]
>>933 こちらが乗り込んで作ろうとすると質が下がると言うくせに。

935 名前:デフォルトの名無しさん [02/09/27 12:08]
>>932
今、私はとってもいそがしい。 そこでだ。
キミが代わりに作っておいてくれないか?

936 名前:デフォルトの名無しさん [02/09/27 13:18]
UmlToJavaを7行で作って欲しいのですが…。

書式:「入力行」 => 「出力行」
-type hoge => private type hoge {\n}
#type hoge => protected (以下略
+type hoge => public (以下略
-type hoge(...) => private type hoge(...) {\n}
#(以下略
+(以下略
「それ以外」 => 「そのまま出力」

あと、+(public)以外のときには
public type getHoge() {\nreturn hoge;\n}
public void setHoge(type hoge) {\n}
をつけてくれるとうれしいです。

937 名前:936 mailto:sage [02/09/27 13:21]
書き忘れました。
実行時引数で与えたファイル名がクラス名になるようにしてください。



938 名前:デフォルトの名無しさん mailto:sage [02/09/27 13:59]
ここって依頼スレか?

939 名前:936 mailto:sage [02/09/27 14:20]
>>938
ネタを提供してやってるん…(゚д゚)ハッ…どうか作ってくださいm(_ _)m。

940 名前:デフォルトの名無しさん mailto:sage [02/09/27 17:56]
>>935 ROMな私が作って良いものができると思ってるんですか?

941 名前:デフォルトの名無しさん mailto:sage [02/09/27 18:08]
ifを3項演算子に書き換える、とかは圧縮する基本テクニックだろうが
結局のところは対象をいかに簡明でトリッキーなアルゴリズムに
変換できるか、に尽きると思うな。

942 名前:デフォルトの名無しさん mailto:sage [02/09/27 19:01]
論理演算、ビット演算、アルゴリズム、データ構造は必須。

943 名前:デフォルトの名無しさん mailto:sage [02/09/27 19:24]
>>940
そんなことは問題じゃない!
気持ちの問題だ!
あたってぶつかれ!

944 名前:デフォルトの名無しさん mailto:sage [02/09/27 19:27]
>>940
そして砕け散れ!

945 名前:デフォルトの名無しさん mailto:sage [02/09/27 21:32]
なんか今日はえらい背中を押しますね。
ROMってのは嘘で1度だけ書いてます。アレだったので叩かれましたが。。。


とりあえずC系の基本技、論理演算子と3項演算子の威力を数字にしてみます。
括弧はついていませんが、各条件部の前に!をつけても正しく動きます。

if(printf("1-1:"))printf("逝ってよし");else if(printf("1-2:"))printf("オマエモナー");else printf("シラネーヨ");
printf("1-1:")&&printf("逝ってよし")||printf("1-2:")&&printf("オマエモナー")||printf("シラネーヨ"); // 12バイト短縮
printf("1-1:")?printf("逝ってよし"):printf("1-2:")?printf("オマエモナー"):printf("シラネーヨ"); // 更に4バイト(演算子が全て2バイトから1バイトになった)

以上は単純で汎用的な短縮パターンですが、3項演算子は演算なだけにif文と違って
戻り値を利用できるので、then/else節に入る命令が同じなら

printf(printf("1-1:")?"逝ってよし":printf("1-2:")?"オマエモナー":"シラネーヨ");// 更に16バイト

とできます。(16バイトは"printf()"が2つ)


なお、これ↓は型の都合上動かないようで。
printf(printf("1-1:")&&"逝ってよし"||printf(printf("1-2:")&&"オマエモナー"||"シラネーヨ"));


946 名前:デフォルトの名無しさん mailto:sage [02/09/27 21:47]
そろそろ次スレですか?

947 名前:デフォルトの名無しさん mailto:sage [02/09/27 21:54]
つーかprintfの戻りって何だっけ?



948 名前:デフォルトの名無しさん mailto:sage [02/09/27 21:55]
printf("1-1:逝ってよし");

最短。

949 名前:デフォルトの名無しさん mailto:sage [02/09/28 00:43]
>>946
次スレは立てない方向じゃなかったの?

950 名前:デフォルトの名無しさん mailto:sage [02/09/28 00:58]
>>949
なんで?つーかそれ何処から出た話?

951 名前:デフォルトの名無しさん mailto:sage [02/09/28 01:02]
>>950 スレ建てお願いしまスタ

952 名前:950 mailto:sage [02/09/28 01:11]
>>951
立てるのは別にいいけど、過去作品まとめてくれ

953 名前:デフォルトの名無しさん mailto:sage [02/09/28 01:16]
>>950
レベルが落ちてるから立てなくてよくねぇ?という話は出てたな。
どうせ低下の一途を辿るなら、今のまま埋もれさせる方がいい、とかかな?
個人的にはせっかく出てきたハイレベルな常連を
厨房が叩いていたのを見た時点でこのスレの終わりを感じた。

過去作品は>>903-905

954 名前:デフォルトの名無しさん mailto:sage [02/09/28 01:17]
自己レス。>>900-905。スマソ

955 名前:950 mailto:sage [02/09/28 01:17]
つーか立てられるかわかんないけど・・
試しに今からスレ立てて見るから、>>2-5>>900-906とそれ以降のリンク、
誰か次スレに貼っつけてといてね。

956 名前:950 mailto:sage [02/09/28 01:20]
次スレ立てれました。
リンク貼りつけお願いします。

七行プログラミング part3
pc3.2ch.net/test/read.cgi/tech/1033143528/

957 名前:デフォルトの名無しさん mailto:sage [02/09/28 01:21]
>>956
お疲れ



958 名前:デフォルトの名無しさん mailto:sage [02/09/28 03:03]
やっぱりこのスレで止めておけばよかったね

959 名前:デフォルトの名無しさん mailto:sage [02/09/28 03:05]
switch(1){case 1:printf("pc3");case 2:printf("2ch");default:printf("net")}
(1==1)?printf("pc3"):(1==2)?printf("2ch"):printf("net")}

上下でやってること違うけど、switch文はやはり使えないな。予約語が長い。
走り抜けが利用できる、条件部が複雑だが等号で行ける、項数が多い。
その3点が揃えば使い道はあると思うが、なかなか無さそう。


まとめにくいなぁ・・・・・・。
3項演算は便利。インクリメント・デクリメントも基本。
ビット演算はとりあえず知っとく。
 ~-1==0なので、EOF検知に使える。
 >>692 のような優先順位を使ったカコイイ技(成果は1バイトだが)もあり。
論理演算が使われているところは隙があるかも。
あと、真理値表って便利。

960 名前:デフォルトの名無しさん mailto:sage [02/09/28 23:32]
なんであんなことになっちまったんだろうなぁ

961 名前:デフォルトの名無しさん mailto:sage [02/09/28 23:37]
みんなが少しずつ我慢できなかったから。

962 名前:デフォルトの名無しさん mailto:sage [02/09/29 00:13]
>>961
> みんなが少しずつ我慢できなかったから。

つーか、ソースも書けねー奴が仕切るからだよ。ちゃんとソースさらして議論すりゃ、厨房はそれなりに淘汰されると思うよ。

963 名前:デフォルトの名無しさん mailto:sage [02/09/29 01:01]
こちらで議論するのはなんだけど、
厨房の意見「どんなソースコードでもスレに貼っていいはずだ」
粘着の意見「7行スレは7行を目指す意志の無いソースを貼ってはいけない」
で、いいんだよね?俺は粘着派だな(w

ちなみに、このスレではみんなそこそこ7行を目指していた(様な気がする)。
しかし、厨房増加の危険は出ていた。テトリスでSが叩かれ
(しかも叩かれたのは内容ではなく「誰も興味ないから何度も書き込むな」)
円周率でトリッキーの1を叩く(これも内容ではなく「有名人はもう出てくるな」)。

最終的に明らかに7行の意志のないドラクエが出てきても叩かれない
(しかもコードの質としては、個人的にはテトリスや円周率に比べて低いように感じた)

そりゃスレの質も落ちるよなぁ。

>>962
ソースさらして議論ってどういう意味だろう?

964 名前:デフォルトの名無しさん mailto:sage [02/09/29 03:08]
2chに質を求める奴はなんつぅか・・・・・・頭が悪いんじゃなかろうか。
削除を行ったり規制を行ったりする管理人がいれば質も上がるだろうが、
2chは議論の場所しか貸してくれない。

質を求める奴は適当なHN使って自分でHP立ち上げて、ここに1回宣伝に来ればいいのに。

965 名前:962 mailto:sage [02/09/29 03:26]
>>963
> ソースさらして議論ってどういう意味だろう?

「どんなソースでも貼れ」「いや、七行にならない奴はダメだ」とか言ってたって議論は平行線だと思うよ。

27行のドラクエがダメだって言うけど、じゃあ何行ならいいの ? 27行でスカスカのコードもあるし、8行でもキチキチのコードもあるよね。

結局コードの行数って言っても一概に何行までならいいなんて言えないと思う。(かといって、一万行とか貼られても困るけどね。)

だから、とりあえず貼ってもらって、どう見てもダメな奴はそう指摘すりゃいいと思う。

少なくとも、「どんなソースでも貼れ」「いや、七行にならない奴はダメだ」なんて言う不毛な議論よりはマシになると思うよ。

966 名前:デフォルトの名無しさん mailto:sage [02/09/29 03:53]
>>964
part1は機能していたのにな。知名度が上がるとダメなのかな?
>>965
963ではないけど、7行にする意志があれば何行でもいいんじゃない?
ドラクエはどうかしらないが、part3のlispはあり得ないよな。

967 名前:デフォルトの名無しさん mailto:sage [02/09/29 04:40]
part3は、278からマトモそうな流れになってきた模様
pc3.2ch.net/test/read.cgi/tech/1033143528/278-



968 名前:デフォルトの名無しさん [02/09/29 06:20]
>>965
「このスレ」に於いては、七行でないとダメだろう
スレタイが前提になることを肝に銘じなくてはいかんよ
10行でOKと思う奴は10行のスレを立てれ

969 名前:デフォルトの名無しさん mailto:sage [02/09/29 06:33]
>>968
つーか元々perl少年のDVD解除7行事件簿から始まった事だろ。
十分短きゃそれでいいんだよ。

970 名前:デフォルトの名無しさん mailto:sage [02/09/29 06:35]
>>968みたいなやつがのさばってからだよ。
スレの雲行きが悪くなったのは

971 名前:デフォルトの名無しさん mailto:sage [02/09/29 06:40]
>>968
つーか、あげるなボケ!

972 名前:デフォルトの名無しさん mailto:sage [02/09/29 07:01]
上げられたくないなら埋め立てろ

973 名前:デフォルトの名無しさん mailto:sage [02/09/29 10:18]
>>968
>「このスレ」に於いては、七行でないとダメだろう
> スレタイが前提になることを肝に銘じなくてはいかんよ
> 10行でOKと思う奴は10行のスレを立てれ

じゃあ聞くけど、貼る奴は7行になると思って貼らないといけないの ?
自分の実力じゃ10行までしかできなかったけど、もしかしたらエキスパートが7行にしてくれるかもしれないじゃん。

あと、勢いあまって6行とかしたら失格ですか ?

まあ、何十行もある奴は論外として、元コードが10行位なら状況によっては7行ぐらいなることもあるでしょ ?
何でそんなにスレタイトルに拘るのかわかんらんよ。

974 名前:デフォルトの名無しさん mailto:sage [02/09/29 10:58]
>>973
自分でやらなくても(達成できなくても)7行への希望があるなら良いんじゃないのか
出したか無いけど、新スレのlispとか7行にするつもりがあるとは思えないだろ。

975 名前:デフォルトの名無しさん mailto:sage [02/09/29 11:45]
>>974
> 出したか無いけど、新スレのlispとか7行にするつもりがあるとは思えないだろ。

コード見ないとなんとも言えないよ。

976 名前:デフォルトの名無しさん mailto:sage [02/09/29 12:06]
>>975
>GC、関数トレース、リスト操作、再帰、高階、内部関数

奇跡が起きてもこれだけを7行付近まで持っていくのは不可能と断言できる。

977 名前:デフォルトの名無しさん mailto:sage [02/09/29 17:22]
>>975
その程度のことも解らない人はこの板に来ない方がいい



978 名前:デフォルトの名無しさん mailto:sage [02/09/29 17:53]
>>976
もし出来たら、目でピーナッツ噛めよな

979 名前:デフォルトの名無しさん mailto:sage [02/09/29 17:53]
>>977
> その程度のことも解らない人はこの板に来ない方がいい

ふ〜〜〜ん、あんたはコードを見なくてもわかるわけね、すごいね。

980 名前:デフォルトの名無しさん mailto:sage [02/09/29 18:33]
>>978-979
粘着見苦しい。つーか解るだろ(w

981 名前:デフォルトの名無しさん mailto:sage [02/09/29 18:39]
断定して排除するのも見苦しいぞ。
選民思想が強すぎる。

982 名前:デフォルトの名無しさん mailto:sage [02/09/29 18:44]
まあ無理っぽい率99.8%超えてるのは認めよう
でも、男なら いや 漢なら! 敢えて0.2%に挑む!

983 名前:デフォルトの名無しさん mailto:sage [02/09/29 18:50]
>>981「犬が卵を産まないと断定できるのか?」
ton.2ch.net/test/read.cgi/gline/1028811653/

984 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:14]
>>982
無理っぽい率100%越えてるって。

985 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:18]
>>984
えーやっぱりそうかなー
でも100%のヒーローなんているわけないよと
わかってんだからはりきるしかないですな

986 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:44]
>984
ヤマトじゃあるまいしどうやったら100%超えるのかと。
でも見たかったな44行lisp。

987 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:50]
GCとかトレースなどはあきらめても問題ないんじゃ?
順次機能を削っていけば…



988 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:57]
>>987
よし作れ

989 名前:デフォルトの名無しさん mailto:sage [02/09/29 19:59]
>>988
俺はlispを知らない(w
ので、仕様を決めてくれ

990 名前:デフォルトの名無しさん mailto:sage [02/09/29 20:08]
7行職人に到る過程として「44行でこんなのできました」というのも
大切にすべきではと思う。7行スレでやるのはスレ違いだが。

無下に断るよりは隔離スレ(釣りバカ)で質疑応答を受けたり
気が向いた人が添削・指摘するなりしたほうがお互いベターでは?

991 名前:デフォルトの名無しさん mailto:sage [02/09/29 20:47]
>>990
> 無下に断るよりは隔離スレ(釣りバカ)で質疑応答を受けたり
> 気が向いた人が添削・指摘するなりしたほうがお互いベターでは?

ソース見てから、「あっちへ逝け」と振るんじゃダメなん ?

992 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:02]
>>991
いいと思うぞ

993 名前:989 mailto:sage [02/09/29 21:05]
俺はlispを知らないので、代わりにlisp風?ミニ電卓を作ってみた。
"(* (+ 2 3) 4)" みたいな計算ができる。
貧弱な上短くする余地もまだまだある、つーか手抜きだが、その辺は好きに弄ってくれ。

#include<stdio.h>
char s[999],*p=s;a(void){int r=0;if(*p=='('){char c=*++p;++p;while(*p==32)++p;
if(c=='+')r=a()+a();else if(c=='-')r=a()-a();else if(c=='*')r=a()*a();else if(
c=='/')r=a()/a();else if(c=='%')r=a()%a();else if(c=='p'){r=a();printf("%d\n",
r);}++p;}else do{r=r*10+*(p++)-'0';}while(*p!=32&&*p!=0&&*p!=')');while(*p==32
)++p;return r;}main(){gets(s);printf("%d\n",a());return 0;}

994 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:14]
>>993
つまり、逆ポーランド記法の電卓ってこと?

995 名前:989 mailto:sage [02/09/29 21:21]
逆ポーランド記法と正反対で、演算子が前に来るから…何て言うんだろ?

表示のpとループ構文l(←もちろん独自仕様)加えて7行に増やした(w
例えば(l 10 (p 10)) で 10を10回表示。
#include<stdio.h>
char s[999],*p=s;a(void){int r=0;if(*p=='('){char c=*++p;++p;while(*p==32)++p;
if(c=='+')r=a()+a();else if(c=='-')r=a()-a();else if(c=='*')r=a()*a();else if(
c=='/')r=a()/a();else if(c=='%')r=a()%a();else if(c=='p'){r=a();printf("%d\n",
r);}else if(c=='l'){int i,n=a();char*b=p;for(i=0;i<n;++i){p=b;r=a();}}++p;}
else do{r=r*10+*(p++)-'0';}while(*p!=32&&*p!=')');while(*p==32)++p;return r;}
main(){gets(s);printf("%d\n",a());return 0;}

996 名前:デフォルトの名無しさん mailto:どうせネタだろ [02/09/29 21:25]
>>994
> つまり、逆ポーランド記法の電卓ってこと?

逆ポーランドは、反対。

2 3 + 4 * とか入力すると、20 とか出力される。HP の奴が有名。

ポーランド記法は、* + 2 3 4 とか入力する。

997 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:27]
HPの電卓は最高だな。クソCompaqめが…

1000取っていい?



998 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:28]
>>996
ネタかどうかしらないがageるな

999 名前:デフォルトの名無しさん mailto:sage [02/09/29 21:32]
次スレ:七行プログラミング part3
pc3.2ch.net/test/read.cgi/tech/1033143528/l50

兄弟スレ:「釣りバカ日誌パート1」
pc3.2ch.net/test/read.cgi/tech/1033220509/l50


           ここは 乂1000取り合戦場乂 となりますた。。。
      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )

1000 名前:997 ◆1O00getQ mailto:お言葉に甘えて [02/09/29 21:32]
    \\                                              //
  ♪  \\    キョウモゲンキニ 1000get♪  ミンナナカヨク 1000get♪     //    ♪
       \\                                        //         ♪
     ♪    ∧ ∧     ∧ ∧   ∧ ∧     ∧ ∧    ∧ ∧     ∧∧      ♪
 ♪    ∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧      ♪
      (゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧
    ♪ ∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)  ♪
─♪──(゚0 ゚*)|  ∪(゚0 ゚*)|  ∪(゚0 ゚*)|  ∪(゚0 ゚*)|  ∪(゚0 ゚*)|  ∪(゚0 ゚*) |  ∪(゚0 ゚*) |  ∪───────
       |  ∪  | |  ∪|   | | ∪. |   | |  ∪|  | .|  ∪|   | | ∪ |  | |  ∪ |  |〜    ♪
  ♪   |  | U U .|  | U U  |  | U U. |  | U U .|  | U U  |   | U U  |  | U U   ♪
       U U     U U     U U     U U     U U     U U     U U


1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<349KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef