5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

七行プログラミング part2

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

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

907 :前スレ853:02/09/26 04:36
あー。Perl 用空白除去ツールは 7 行達成してます。

$_=join" ",grep{s/(^\s*#.*)|\s+/ /g;length}<>;%k='()<>[]{}'=~/./g;s~(.*?)((?:
(?:(?<![\$\%\&\*\@])(?:(?:m|q[qrwx]?)(?:([(<[{]).*?$k{$3}|([^(<[{ \w]).*?\4)|
(?:s|tr|y)(?:([(<[{]).*?$k{$5}\ *\5.*?$k{$5}|([^(<[{ \w]).*?\6.*?\6))|(?<![\w])
/(?:\\/|[^/])*/)[a-z]*)|"(?:\\"|[^"])*"|'(?:\\'|[^'])*')~push@c,$1,$2;''~egx;$q
=$c[0]=~m!^["'/]|([msy]|q[qrwx]?|tr)[^ \w]!;($_,@c)=map{++$q%2?split:$_}@c,$_;
sub j{$_.=$_[0].shift@c}sub l(){length$_.$c[0]}sub p{print"$_\n";$_=shift@c}sub
w(){/\w$/&&$c[0]=~/^\w/}78<l?79<l?p:w?p:j&&p:w?j" ":j while@c;p;

コメント付きはここに。
http://boobar.hoops.ne.jp/rms/

908 :デフォルトの名無しさん:02/09/26 05:19
まとめ乙です〜。
970ぐらいで次スレに移ったときにコピペしましょ。

909 :デフォルトの名無しさん:02/09/26 05:27
○ラクエで思い出したけど、プログラムポシェットにも1画面RPGってあったよね。
あれ七行で出来ないかな…。マップ移動もあるやつ。

910 :60cm浮き上がるストレート:02/09/26 14:18
>>909マップ移動のみ。1~9で移動します。黒いところに行くと終了します。

char x,y,Y,X,m[][12]={"47764454244","77762222244","77622111224","66221111224",
"22221111244","42222422224","22222522224","42222422044","22224422224",
"44224424444","44444454444"},g;main(){printf("\x1b[>5h");for(y=x=1;;){for(Y=X=
-2;Y<3;X==2?(X=-2,Y++):X++)printf("\x1b[%d;%dH\x1b[%dm\x1b[%dm  ",Y+13,X*2+40,
Y==0&&X==0?5:0,m[L(y+Y)][L(x+X)]-8);if(y==7&&x==8)exit(1);g=getch();if(g>48&&g
<58){y+=1-(g-49)/3;x+=(g-49)%3-1;y=L(y);x=L(x);if(m[y][x]==49||m[y][x]==52){y
-=1-(g-49)/3;x-=(g-49)%3-1;}}}}L(a){a-=a>=11?11:0;a+=a<=-1?11:0;return a;}

911 :デフォルトの名無しさん:02/09/26 14:28
今度はここに出没かよ!>60

912 :デフォルトの名無しさん:02/09/26 16:54
まぁ>>910には新スレ立ててもらいましょう。

913 :デフォルトの名無しさん:02/09/26 18:39
もう新スレいらないんじゃない?レベル低いし

914 :デフォルトの名無しさん:02/09/26 18:49
Prologインタープリタ作ってみたが、これは7行は無謀だな。
とりあえず15行
#define D(X,Y,Z) Y(){N*x=X();return c==Z>>6?s[4]=Z,s[6]=x,x=s+=4,x[3]=Y(),x:x;}
typedef*P,N,*E[99];N*F[99],f,S[99999],*s=S,c,R,**G;C(){(c=getchar())<0?exit(0):
c<33&&C();}T(){N*x;C();s[4]=c*64+(c-65<26U)+1;return'('==c?x=p(),C(),x:(C(),s+=
4);}D(T,Q,2884)D(Q,q,2820)D(q,p,3716)a(c){putchar(c);}W(N*x){r(&x);a(*x>>6);*x&
4?a(40),W(x[2]),a(44),W(x[3]),a(41):0;}B(x,y){s+=4;*s=8;s[2]=x;s[3]=y;}r(P*x){N
*y=*x;for(;y<=s&&**x&2;y+=4)*y==8&&y[2]==*x?*x=y[3]:0;}u(N*x,N*y){r(&x);r(&y);
return x==y||(*x&2?*y&2&&x>y?B(y,x):B(x,y),1:*y&2?B(y,x),1:*x==*y?*x&4?u(x[2],y
[2])&&u(x[3],y[3]):1:0);}I(N*x,E z){P*y=z+(*x>>6),w=s+=4;*w=*x;return*x&2?*y?*y
:(*y=w):*x&4?w[2]=I(x[2],z),w[3]=I(x[3],z),w:x;}Y(x,y,z){s+=4;s[0]=0;s[1]=x;s[2
]=y;s[3]=z;return s;}U(n,g,x){P*i=F,z,q=s;while(*i){E e={0};z=I(*i++,e);if(u(g,
z[2])){X(Y(n+1,z[3],x));if(R<n+2)break;}s=q;}}X(N*x){N*g,z;R=999;x?(g=x[2])?U(x
[1],g,x[3]),*g==2113?X(x[3]),R=R>x[1]?x[1]:R:*g==2820?X(Y(x[1],g[2],Y(x[1],g[3]
,x[3]))):0:X(x[3]):J();}J(){N i=0;while(i<99)G[i]?a(i),a(61),W(G[i++]),a(10):i
++;puts("yes");}main(){N*z;while(z=p()){E e={0};G=e;*z!=3716?W(z),a(10),X(Y(0,I
(z,e),0)),puts("no"):(F[f++]=z,0);}}

:-の代わりに:を使う。compound termはない。変数等は一文字のみ。
:のある入力はassertされて、ないのは問い合わせだとみなされる。
差分リストを使った7行クイックソートでも食わせてみてくれ
t:!. o-(X,Y): z-(X,Y,(0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,@)).
z-(X,Y,(X,R)): !. z-(X,Y,(Y,R)): !,f. z-(X,Y,(Z,R)): z-(X,Y,R).
q-(@,X-X):!. q-((X,R),Y-Z): v-(X,R,L,B), q-(L,Y-(X,W)), q-(B,W-Z).
v-(P,(X,R),L,(X,B)): o-(P,X),!,v-(P,R,L,B).
v-(P,(X,R),(X,L),B): v-(P,R,L,B).v-(P, @, @, @):t.

q-((6,2,f,9,7,e,d,5,b,1,8,a,3,c,4,@),Y-@).


915 :デフォルトの名無しさん:02/09/26 19:30
>>913
他のスレに比べても十分良いレベルにはあると思うよ。
part2が作られたときも散々言われたけど、なかなかいい作品が出てきたし。

>>914
つーか、すげーよ! 10行未満には絶対すべきや! そしていつか7行に!!

916 :デフォルトの名無しさん:02/09/26 20:51
>>915
Part2でレベル下がったと思うけどな。
低レベルの作品をお互いにほめあってどんどんレベル落ちてるかと。

917 :デフォルトの名無しさん:02/09/26 21:40
>>916
Part3で回復を期待しましょう。

918 :デフォルトの名無しさん:02/09/26 22:00
>>916
そういうあなたの作品は?

919 :デフォルトの名無しさん:02/09/26 22:22
>>916
確かにRLEやgrep@perl、○ラクエなどはどうかと思ったけど。

(まだ7行プログラミングが普及していないせいもあるが)
それでもpart1ではオセロやカラースネークくらいしか見られるものがなかった。
part2ではテトリスや各種データ圧縮がなかなかのレベルかと思うが、どうだろ。

920 :デフォルトの名無しさん:02/09/26 22:30
>>919
圧縮はPart1のレンジコーダーが最高峰でないの?

921 :デフォルトの名無しさん:02/09/26 23:10
>>920
part1のrangecoderはもっと短くできるから、それが再登場したら最強かも。
でも、詰め込み(縮め)度合いならば、part2の方がかなり熟成された感じが良い。
ただコンパイラ依存、環境依存になりかけているのが残念だけど。

922 :デフォルトの名無しさん:02/09/26 23:25
>>921
もっと短くしてみろよ


923 :デフォルトの名無しさん:02/09/26 23:33
>>922

#include <iostream>
unsigned W,O,u=256,i=6,l,K,b,a[256],R=~0,y=1<<24,x=u;main(int,char**V){unsigned
char*t=new unsigned char[1<<24];if(*V[1]-69){for(cin>>O;i--;)W=W*x|cin.get();
for(;l<O;R*=a[b]){for(K=b=0;R<y;R*=x)W=W*x|cin.get();for(R/=u++;W/R>=K;K+=a[b++
]+1);W-=R*(K-++a[t[l++]=--b]);}}else{for(;~(i=cin.get());K=W,l++){for(b=0;b<i;W
+=R/u*(a[b++]+1));if(K>W)for(K=O;!++t[--K];);for(R=R/u++*++a[i];R<y;R*=x)t[O++]
=W/y,W*=x;}cout<<l<<-1;for(y=4;y--;)t[O++]=W>>y*8;}cout.write(t,O);}

924 :923:02/09/26 23:35
ちなみにもともとのようにgccオンリーでよいならば、
3行目をchar t[y];とできるから、もっと縮まるよん。

925 :デフォルトの名無しさん:02/09/27 00:11
言っちゃなんだが大して変わってないな

926 :923:02/09/27 00:15
>>925
まだpart2ができる前のものだからねぇ。すまんねぇ。
このスレで登場したrangecoderのように符号化と復号をいっしょにするとか、
今ならもっと縮まるかもしれない。>>925が挑戦してみる?

927 :デフォルトの名無しさん:02/09/27 00:34
> #include <iostream>
> unsigned W,O,u=256,i,l,K,b,a[256],R=~0,y=1<<24,x=u;main(int,char**V){unsigned
> char t[y];if(*V[1]-69){cin>>O;cin.read(t,6);for(W=t[2]*y|t[3]<<16|t[4]*x|t[5];l
> <O;R*=a[b]){for(K=b=0;R<y;R*=x)W=W*x|cin.get();for(R/=u++;W/R>=K;K+=a[b++]+1);W
> -=R*(K-++a[t[l++]=--b]);}}else{for(;~(i=cin.get());K=W,l++){for(b=0;b<i;W+=R/u*
> (a[b++]+1));if(K>W)for(K=O;!++t[--K];);for(R=R/u++*++a[i];R<y;R*=x)t[O++]=W/y,W
> *=x;}cout<<l<<-1;t[O++]=W/y;t[O++]=W>>16;t[O++]=W/x;t[O++]=W;}cout.write(t,O);}

前スレのrangecoder。
エンコデコ一緒だろ、これ?

928 :デフォルトの名無しさん:02/09/27 00:41
>>927
forをひとつにまとめてしまうっていう手法のことだろ?
g=*V[1]-69;としておいて、for(g?decode:encode;g?...:...;);とするやつ。

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

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

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

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

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

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

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

934 :デフォルトの名無しさん: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:02/09/27 13:21
書き忘れました。
実行時引数で与えたファイル名がクラス名になるようにしてください。

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

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

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

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

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

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

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

945 :デフォルトの名無しさん: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 :デフォルトの名無しさん:02/09/27 21:47
そろそろ次スレですか?

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

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

最短。

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

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

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

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

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

過去作品は>>903-905

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

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

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

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

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

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

959 :デフォルトの名無しさん: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 :デフォルトの名無しさん:02/09/28 23:32
なんであんなことになっちまったんだろうなぁ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

993 :989: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 :デフォルトの名無しさん:02/09/29 21:14
>>993
つまり、逆ポーランド記法の電卓ってこと?

995 :989: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 :デフォルトの名無しさん:02/09/29 21:25
>>994
> つまり、逆ポーランド記法の電卓ってこと?

逆ポーランドは、反対。

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

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

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

1000取っていい?

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

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

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


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

1000 :997 ◆1O00getQ :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を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

350 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)