2014年7月8日火曜日

開発環境

プログラミングGauche(Kahuaプロジェクト (著)、 川合 史朗 (監修)、オライリージャパン)の第3部(実用的なプログラミング)、14章(入出力)、14.3(ポート)、14.3.2(文字列ポート)、練習問題(wite-to-stringとcall-with-input-string, read-from-stringとcall-with-output-string)を解いてみる。

その他参考書籍

練習問題(wite-to-stringとcall-with-input-string, read-from-stringとcall-with-output-string)

コード(BBEdit, Emacs)

sample202.scm

#!/usr/bin/env gosh
;; -*- coding: utf-8 -*-

(define (my-write-to-string o)
  (call-with-output-string (lambda (out)
                             (write o out))))

(define (my-read-from-string s)
  (call-with-input-string s (lambda (in)
                              (read in))))

(for-each (lambda (f)
            (write (f '(1 "abc" "\"" #\z)))
            (display "\n")
            (print (f '(1 "abc" "\"" #\z))))
          (list write-to-string
                my-write-to-string))

(for-each (lambda (f)
             (write (f "(1 \"abc\" \"\\\"\" #\\z)"))
             (display "\n")
             (print (f "(1 \"abc\" \"\\\"\" #\\z)")))
          (list read-from-string
                my-read-from-string))

入出力結果(Terminal(gosh), REPL(Read, Eval, Print, Loop))

$ ./sample202.scm 
"(1 \"abc\" \"\\\"\" #\\z)"
(1 "abc" "\"" #\z)
"(1 \"abc\" \"\\\"\" #\\z)"
(1 "abc" "\"" #\z)
(1 "abc" "\"" #\z)
(1 abc " z)
(1 "abc" "\"" #\z)
(1 abc " z)
$

0 コメント:

コメントを投稿