2007-06-01から1ヶ月間の記事一覧

携帯電話の接写で取ってみた

0拡張

今のところこれぐらいしかわからない。 javascriptでいうところの substr(-4)に該当するtakeがあればいいのだが。 Prelude> map (\x->reverse$take 4$reverse("0000"++(show x))) [8..12] ["0008","0009","0010","0011","0012"] 追記:平成19年07月03日 prin…

wikiを書いてみた。

始めた書いたlispのアプリケーション。 それにしてはlispにみえない。苦労したのはファイル周り。読み込み (define contents (call-with-input-file #`"wiki/,title" (lambda (x) (if x (port->string x) "")) :if-does-not-exist #f))書き出し (with-output…

その2

少し短くなった。 $ gosh -e '(for-each (lambda (x) (display (call-with-input-file x port->string))) *argv*)' a.txt b.txt foo bar buzz foo2 bar2 buzz2

だめ、俺の限界を超えてる。モナド来た しかも引数0の時動かない。 $ runghc -e 'import System;main=do{a<-getArgs;mapM (\x->getFile x) a;return ()};getFile x=do{c<-readFile x;putStr c} ' a.txt b.txt foo bar buzz foo2 bar2 buzz2 もう少し読みや…

functionでaliasを実装する。

unsetじゃ駄目だったんだ。 $ function ls { unset ls; echo "This is ls";ls; }; ls ;declare -f ls This is ls gosh_wrap gosh_wrap.clsが消えてしまっている。別の関数を使えば以下のように解決できる。でもかっこわるい。 $ function ls { ls2; } ; func…

各コマンドの-eオプションをそろえる

.bashrcに以下を書く function gosh(){ if [ $# -ge 1 ] && [ $1 == '-e' ]; then echo "$2">$$.scm;shift 2;`which gosh` $$.scm "$@";rm $$.scm; else rlwrap `which gosh` "$@";fi } function runghc(){ if [ $# -ge 1 ] && [ $1 == '-e' ]; then echo "$…

DBみたいにして遊ぶ

最近、コマンドラインが大好きで…最期のとかSQLみたいな気が…しないな(笑 echo -eをおぼえて良かった。 配列の添字が0,1,2なのがちょっと寂しいぐらいか。 $ echo -e "1 2 3\n4 5 6\n7 8 9" 1 2 3 4 5 6 7 8 9 $ echo -e "1 2 3\n4 5 6\n7 8 9" | ruby -ane…

function

リダイレクト きちんと全てのコマンドを同じファイルディスクリプタにつないでるんだな。丁寧だ。 おそらくexecする前につないでるだけなんだろうがねらい通りの動きをするってすごいな。 $ echo "aaa";echo "bbb"> a.txt aaa $ function a { echo "aaa";ech…

perl6::Sayをインストール

perl6の関数があらかじめ使えるのかな?とおもいインストールしてみる # aptitude install libperl6-say-perl $ perl -e 'use Perl6::Say;say "Hello,World"' Hello,Worldををっ!すばらしい。ありがとうございます。>id:bonlifeさん

runghcに-eオプションを無理矢理付ける

上のエントリとまったく同じノリ。なので引数も同じ問題点を抱えてる。 $ function runghci { if [ $# -ge 1 ] && [ $1 == '-e' ]; then echo $2>$$.hs;shift;shift;runghc $$.hs $*;rm $$.hs;else runghc $@;fi; } $ runghci -e 'import System;main=do{a<-…

gaucheの-eオプションをその辺のLLと同じにする。

仕様:-eオプションは最初に置いたときのみ有効利用方法:以下を.bashrcに叩き込む。 function goshi { if [ $# -ge 1 ] && [ $1 == '-e' ]; then echo $2>$$.scm;shift;shift;gosh $$.scm $*;rm $$.scm;else rlwrap gosh $*;fi; }function書いたの初めてで…

前提 $echo -e "foo\nbar\nbuzz" > a.txt $echo -e "buzz\nbar\nfoo" > b.txtうーん、-Eexit dummyがむかつく(笑 早く慣れよう。とおもったがbashの方で対応した $ goshi -e '(for-each (lambda (x) (display (call-with-input-file x (lambda (f) (port->s…

strcatがうまく使いこなせないため着陸 rungcc -m 'int i=1;for(;i

くー、runghcの-eオプションだとmainの省略パターンみたいだ。せめて-で標準入力からとってくれるとうれしいのだが $ echo 'import System;main=do{a<-getArgs;putStrLn $ unwords a}'>a;runghc a "aaa bbb" ccc;rm a aaa bbb ccc #!/usr/bin/runghc import …

spidermonkeyで実装されたJavascriptShellでechoを作ってみた。 $ echo 'print(arguments.join(" "))'|js - "aaa bbb" ccc aaa bbb ccc #!/usr/bin/js print(arguments.join(" "))

配列が@なのとjoinの引数の順序を完全に忘れてた。 $ perl -e 'print join(" ",@ARGV),"\n"' "aaa bbb" ccc aaa bbb ccc #!/usr/bin/perl print join(" ",@ARGV),"\n"

一行どころの話じゃない(笑 やっぱ、短いプログラムにはLLの方が有利だな… $ ruby -e 'puts ARGV.join(" ")' $ ruby -e 'puts ARGV.join(" ")' aaa aaa $ ruby -e 'puts ARGV.join(" ")' "aaa bbb" aaa bbb $ ruby -e 'puts ARGV.join(" ")' "aaa bbb" ccc …

その2

string-joinはnilのとき""を返すのを発見。 gosh> (string-join ()) ""修整後。すっきりしたなあ。 #!/usr/bin/gosh (define (main args) (display (string-append (string-join (cdr args)) "\n")) 0) listをappendしてからstringに変換する方法 #!/usr/bin…

微妙。foreachかmapかで迷ってしまった。 中央に燦然と輝く";"がすごく気になるがperlでファイルを操作したのは久しぶりでこれ以上は無理(笑 $ perl -e 'foreach(@ARGV){open F,$_;print <F>}' $ perl -e 'foreach(@ARGV){open F,$_;print <F>}' a.txt b.txt foo </f></f>…

やっぱこっちの方が慣れてるな。一分かからなかった。 $ ruby -e 'ARGV.each{|i|print open(i).read}' $ ruby -e 'ARGV.each{|i|print open(i).read}' a.txt b.txt foo bar buzz buzz bar foo

echoコマンドを作ってみた。 #!/usr/bin/gosh (define (main args) (display (string-append (if (null? (cdr args)) "" (string-join (cdr args))) "\n")) 0) 実行 $ ./echo.scm $ ./echo.scm aaa aaa $ ./echo.scm "aaa bbb" aaa bbb $ ./echo.scm "aaa bb…

コマンドライン引数

*argv* が便利そうだったのだが最初の引数を.scmと思ってるみたいだ。-eの扱いがその辺のスクリプトと違う。-e以外ではrubyのARGVと同じ $ gosh -E'print *argv*' -Eexit a b c d (b c d) $ gosh -E'print *argv*' a b c d (b c d) *** ERROR: cannot find f…

自閉症チェック

11点らしい。確かに大丈夫そうだな>俺 問2:同じやり方を何度も繰り返し用いる事が好きだ。どちらかといえばいいえ

Fileオブジェクト研究

Dir.glob(/*.txt/)と同じコードは new File(".").list(function(n){return null==/.txt/g.exec(n)?false:true}) File.currentDir.list(function(n){return null==/.txt/g.exec(n)?false:true})ファイルの中身を得る(readAll()は配列でかえってくる模様。標準…

Fileオブジェクトに挑戦

spidermonkeyでread,writeしたい。と言う衝動に負けFileオブジェクト込のjavavascript shell (js)をコンパイルする。まず、http://www.ossp.org/pkg/lib/js/ より、ソースをゲットとりあえずはconfigure ./configure --with-utf8 --with-editline4.0 遊んで…

C言語によるjavascript開発テンプレート

ブックマークレットは開発時に一行で書かなくてはならず、見通しが悪い。 そこで、インデントおよび改行をゆるし、ファイルによりブックマークレットを開発及び管理するために開発されたプログラムがこれ。 使用方法 先頭にmkbkmkを記述したnow.cgiを作成す…

OSSP版spidermoneky

http://moyashi.air-nifty.com/hitori/2006/09/javascriptspide_d8aa.html でOSSP版のspidermonekyなるものを発見。 http://www.ossp.org/pkg/lib/js/ ここからダウンロード $ tar xpf js-1.6.20070208.tar.gz $ cd js-1.6.20070208 $ ./configure --with-ut…

コマンドラインでファイルのフルパスを得る

$ find `pwd` -name '*.c' -print /home/○○/work/rungcc/rungcc.c