その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/gosh
(define (main args) (display (string-join (append (cdr args) '("\n")))) 0)

追記:shiroさんからの display -> printの示唆

#!/usr/bin/gosh
(define (main args) (print (string-join (cdr args))) 0)

おお、すっきりした。

そうか、gaucheの方言である*argv*を使えばrubyと勝負できるな。

#!/usr/bin/gosh
(print (string-join *argv*))

うん。悪くない。
おしいなー コマンドラインの-eオプションが通常のLLと違うだけか。

しかし迷うな…

言語 改行無 改行有
scheme display print
ruby print puts
perl print say(use Perl6::Say;環境下にて)

perlの改行有がわからない。(追記:id:bonlifeさんに教えていただいた)