七行プログラミング (452レス)
1-

338: nobodyさん [sage] 04/09/18 22:53:04 ID:??? AAS
>>335
335(1): nobodyさん [sage] 04/08/07 07:38 ID:??? AAS
>319
全然要求満たしてないけど、叩き台に。
C/C++用、inputは余計なコード書いてないヘッダファイルのみ

#!/usr/bin/perl -Pn
/^namespace\s*(\w+)/ && ($ns=$1);
/\#include\s*[<"](.+)[">]/ && push(@inc, $1);
/^class\s+(\w+)\s*\:?/ && push(@cls, $1);
/(([\w\s\*]+)(\w+)\s*\((.+)\))/ && push(@memf, $1); # メンバ関数
/(([\w\s\*]+)(\w+));/ && push(@memv, $1); # メンバ変数
END{ print join("\n", $., $ns, "@inc","@cls","@memf", "@memv"),"\n" }

JAVAはリフレクションがあるし、classファイルのフォーマットも公開されてるので
別のアプローチでやってみると面白いかも知れない。(javapやClassBrowserが既にあるけど)
使い方がわからない。。。。
339: nobodyさん [] 04/09/20 13:46:08 ID:k3h/6iWb(1) AAS
スクリプト -> 335.pl

/* C++のヘッダファイル foo.h */
#include <iostream>
#include <stdlib.h>
#include "common.h"

using namespace std;

namespace test{
class FooTest: public Test {
int total;
public:
Test();
~Test();
int foo(void);
int bar(int n, int m);
}; // End of class FooTest
}; // End of namespace test

実行方法
$ perl -Pn 335.pl < foo.h または、
$ ./335.pl < foo.h
18
test
iostream stdlib.h common.h
FooTest
int foo(void) int bar(int n, int m)
using namespace std int total

行数, namespace, includeファイル, メンバ関数, 変数の順に出力
340: nobodyさん [sage] 04/09/20 14:43:21 ID:??? AAS
何故わざわざ WebProg 板で? と思いつつ縮め。

#!/usr/bin/perl -n
$n=$1if/^namespace\s*(\w+)/;/#include\s*[<"](.+)[">]/&&push@i,$1;/^class\s+(\w+
)\s*\:?/x&&push@c,$1;/\s*([\w\s\*]+\w\s*\(.+\))/&&push@f,$1;/\s*([\w\s\*]+\w);/
&&push@v,$1;END{print join"\n",$.,$n,"@i","@c","@f","@v",''}
341
(1): nobodyさん [sage] 04/09/21 17:50:57 ID:??? AAS
<html>
<head>
<title>あ</title>
</head>
<body>
</body>
</html>
342
(1): nobodyさん [釣られてみるsage] 04/09/21 17:58:26 ID:??? AAS
それはマークアップ言語という(ry
343
(1): nobodyさん [] 04/10/03 15:30:49 ID:qw0lrubh(1) AAS
Store7の圧縮してない奴ないですか? > 作者
344
(1): nobodyさん [sage] 04/10/03 17:06:58 ID:??? AAS
>>343
自分で展開していかないと面白味が分からないと思うなぁ、コレ。
外部リンク[cgi]:cm.xrea.cc
345: nobodyさん [sage] 04/10/03 20:29:26 ID:??? AAS
>>344
ありがとう
いや,実は>>258
258(2): Store7.pm [] 04/02/27 22:01 ID:xssKWf0b(1) AAS
package Store7;sub E{$_=shift;s/\\/\\\\/g;s/'/\\'/g;$_}@ISA='Exporter';@EXPORT=
@EXPORT_OK=qw/store retrieve/;sub store{open my$o,">$_[1]";print$o ''.d($_[0]);
}sub retrieve{do$_[0]}sub d{my$f=shift;my$e=ref$f;$e eq'SCALAR'?"'".E($$f)."'":
$e eq'ARRAY'?'['.join(',',map{d($_)}@$f).']':$e eq'HASH'?'{'.join(',',map{my$k=
$_;$_="'".E($k)."'=>".d($f->{$k})}keys%$f).'}':"'".E($f)."'"};use Exporter;1

なんとか5行でStorable.pmと同じ使い方です(storeとretrieveだけ)。

store( \%hashとか\@array, 'data.txt' );
$hash_ref = retrieve('data.txt');
なんだけど機能強化されてるのでこっちを使おうかと思ってね
346: nobodyさん [age] 04/12/12 03:10:20 ID:??? AAS
あげ
347
(1): nobodyさん [sage] 04/12/16 18:47:01 ID:??? AAS
外部リンク[html]:internet.watch.impress.co.jp
348
(1): nobodyさん [sage] 04/12/17 09:19:09 ID:??? AAS
>>347
Perlのmolester-minの方はライブラリ使わず9行。(詰めれば6,7行以内に収まりそう。
外部リンク:ansuz.sooke.bc.ca
349
(1): nobodyさん [sage] 04/12/17 14:50:07 ID:??? AAS
>>348
定数をハードコーディングして可搬性を激しく落としてでも
Socket.pm を使わない選択は漢だなぁ。(w

80桁ギリギリまで詰めるよう整形したら既にシェバング無し
七行達成してるし、あと 40 byte ほど縮めたらいい感じかな。

$/=$_;$,=shift;$w=$a=shift;sub g{open(F,$4)&&t($2,$a,"e$4",<F>);close F}socket
S,2,1,6;$k{+shift}=1;bind S,&a;sub e{open F,">$4";print F$';close F}sub h{t($2,
$_,id)for keys%k}sub i{$k{$2}=1}sub f{t($_,$2,$4)for keys%k}sub a{$w=~/:/;pack
'CxnC4x8',2,$',split'\.',$`}sub t{socket X,2,1,6;$w=shift;$k{$w}=(connect X,&a)
?print X"$, $_[0] $_[1]/".pop:$/;close X}for(listen S,5;$SIG{ALRM}=sub{};
m!^(.*?) (.*?) ([e-i])([^/]*)/!s&&$,eq$1&&&$3){alarm 9;(accept(C,S),alarm 0)?
read C,$_,1e6:($_="$, $a f".shift);close C}
350: nobodyさん [sage] 04/12/17 21:57:04 ID:??? AAS
>>349
正規表現による暗黙の代入とグローバル特殊変数を使った引数渡しは使えそうだ。

PythonのTinyP2PがXMLRPC等のライブラリを使っているので、
動機のひとつにライブラリなしバージョンを作ろう、ってのがあったみたい。
サイトを良く読むとblogとかにその辺の事情も書いてる様です。

他の言語では、Java(16行), Ruby(6行)版も投稿されてます。
外部リンク[pl]:developers.slashdot.org
外部リンク[pl]:developers.slashdot.org
351: nobodyさん [sage] 04/12/24 21:39:51 ID:??? AAS
ほす
352
(1): nobodyさん [] 05/01/30 23:39:07 ID:cEoW2dZ/(1) AAS
>>341-342
そういえば、昔、5kっていう5KBにHTMLページを収めるってなコンテストがあったなぁ。
外部リンク:www.the5k.org
5Kといい、7Lといい、こういうの好きなんだわ漏れ。
7行といえば560バイトでWebPage作るってのはどう?
ちょっと擦違いスマソ
353: nobodyさん [sage] 05/01/31 00:37:15 ID:??? AAS
>>352
「どう?」じゃなくて、作って晒せば? こういうのはやったもん勝ち。
面白いと思わせる事ができれば挑戦者も出てくるんじゃない?

ただスレのルール的に、「560 byte」でなく、1 行は 79 byte + 改行、
7 行以内でそのまま使える、って条件を満たしてないと個人的には
受け入れ難いなぁ。
354: nobodyさん [age] 05/01/31 14:38:02 ID:??? AAS
<?

echo 'PHPもまぜてくれ';

?>
355
(3): nobodyさん [sage] 05/02/06 00:29:37 ID:??? AAS
じゃぁ、phpで7行wiki

<? require("Text/Wiki.php");require("Cache/Lite.php");$c=&new Cache_Lite();
$s=$_SERVER[PHP_SELF];$g=$_GET;$b=&$_POST[b];$n=$g[n]?$g[n]:"FrontPage";$b&&
$c->save($b,$n)&&header("Location: $s?n=$n");($b=$c->get($n))||$g[c]=e;
$h="<h1>$n</h1>";if($g[c]==e)$h.="<form method=post action='?n=$n'>".
"<textarea name=b rows=30 cols=80>$b</textarea><input type=submit>";
else{$w=&new Text_Wiki;$w->setRenderConf(xhtml,wikilink,new_url,"?n=%s");
$h.=$w->transform($b,xhtml)."<hr><a href='?c=e&n=$n'>e";}?><html><body><?=$h?>

PEAR::Text_Wikiが必要。Cache_LiteはPEARにデフォルトで入ってる気がする。
あとshort_open_tag=Onでよろしく。

整形ルールは 外部リンク[php]:wiki.ciaweb.net
日本語のwikinameは使えなかったりする。これはText_Wikiが対応していないせい。
356: nobodyさん [] 2005/04/24(日) 00:09:53 ID:s2OIHVmv(1) AAS
保守あげ
357: nobodyさん [] 2005/04/26(火) 00:51:58 ID:UrRypboo(1) AAS
>>355
ちょっとずるい気がする
358
(1): nobodyさん [sage] 2005/04/26(火) 17:50:19 ID:??? AAS
どの辺が? タグを閉じていないあたり?
359: nobodyさん [sage] 2005/04/27(水) 02:12:54 ID:??? AAS
>>358
ライブラリ使い過ぎると面白さ半減ってことだろ。
360: nobodyさん [] 2005/04/27(水) 03:24:58 ID:0BxullHs(1) AAS
モジュール/ライブラリに関して
>>46
46(2): nobodyさん [require使えば] 02/11/03 19:44 ID:??? AAS
1行でも書けるな。
>>135
135(3): nobodyさん [sage] 03/04/19 12:54 ID:??? AAS
ライブラリをつかってよいのなら、主要な処理はライブラリに書けば数文字でかけますね。
>>136
136(2): nobodyさん [sage] 03/04/19 21:11 ID:??? AAS
>>135
個人的にはモジュール不可派だけど、WebProg だし
標準モジュールだけ使用可にした方が面白いものが
出てきそうな気がするのでそういう縛りで考えてるよ。
>>174 >>175
外部リンク[cgi]:cm.xrea.cc の 0.1. ライブラリ及びモジュールの利用

>>355
requireって () 省略できるはず。
361: nobodyさん [sage] 2005/04/27(水) 07:43:42 ID:??? AAS
>>355
まぁでも、7行で基本機能を備えたwikiが使えるなら実世界でも結構有用じゃないか。
Text_Wikiの機能のデモにはなるでしょ。

むしろwiki技術関連スレ向きとは思うが。
向こうにも一応アンカー張ってあるね。
362: nobodyさん [sage] 2005/04/28(木) 12:12:12 ID:??? AAS
流れを無視して、7vote が 7 行に収まったのでパッケージング。

#!perl
use CGI":all";charset$c='UTF-8';${$_}=param$_ for f,n,v;$f=~s/\W//g;open F,"+<$
f"if chdir V;eval{flock F,2};$t=<F>;/\t/and$D{$`}+=$' for<F>;seek F,0,0;$n?$D{$
n}||=1:$v&&$D{$v}++,print F$t,map"$_\t$D{$_}\n",keys%D if$n||$v;$L{$K[$i++]}=$_
for radio_group(v,[@K=sort{$D{$b}<=>$D{$a}}keys%D]);put header,start_html(-lang
,ja,encoding,$c,-Title,$t),h1($t),startform,table({},Tr[map{td["$L{$_}($D{$_})"
,hr{width,$D{$_}}]}@K]),hr,p(textfield(n),hidden(f,$F),submit),endform,end_html

UTF-8 になったのがちょっと悔しい。
ファイル名は \w+ にしました。
1-
あと 90 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.020s