Pipe その2
こういう形式はどうだろうか? | が identifier じゃないのが痛い。
(define-syntax -> (lambda (x) (syntax-case x () [(_ (cmd1 args1 ...) (cmd2 args2 ...)) #'(pipe ((symbol->string (syntax->datum #'cmd1)) (map symbol->string (syntax->datum #'(args1 ...)))) ((symbol->string (syntax->datum #'cmd2)) (map symbol->string (syntax->datum #'(args2 ...)))))] [(_ cmd1 (cmd2 args2 ...)) #'(pipe ((symbol->string (syntax->datum #'cmd1)) '()) ((symbol->string (syntax->datum #'cmd2)) (map symbol->string (syntax->datum #'(args2 ...)))))] ))) ;; 使用例 (-> ls (grep Pro))