echo

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…

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…