Gauche:入出力ポートの使い方

Gauche:入出力ポートの使い方

入出力ポートの使い方メモ

Gaucheにはかなり豊富な入出力ポートを扱う手続きが用意されている。 これらを使った簡単なサンプルをまとめていこう。


印字出力を霞め取る

(define (p)
  (print "HELLO"))

のような印字を行う関数の印字出力を霞め取るのに文字列ポートが使える。

(with-output-to-string p)

あるいは汎用のポートを一旦経由して

(call-with-output-string
 (lambda (port)
   (with-output-to-port port p)))

対話型のコマンドと対話する

次の様な感じ。

(use gauche.process)

(call-with-process-io
 "mecab -O wakati"
 (lambda (in out)
   (display "こんちわ世界" out)
   (newline out)
   (read-line in)))

(call-with-process-io
 "mecab -O wakati"
 (lambda (in out)
   (display "こんちわ世界\n" out)
   (read-line in)))

(call-with-process-io
 "mecab -O wakati"
 (lambda (in out)
   (write 'こんちわ世界 out)
   (newline out)
   (read-line in)))

(call-with-process-io
 "mecab -O wakati"
 (lambda (in out)
   (format out "こんちわ世界~%")
   (read-line in)))

Last modified : 2006/04/02 07:06:01 UTC