challenge コメントの削除

ソースコードからコメント部分を削除するプログラム decomment を書いてください.
すくなくとも,decomment を記述したのと同じ言語で書かれているソースコードが
扱えるようにしてください.



Posted feedbacks - Scheme

Scheme で書きました。 read で読み込んで write で書き出せばコメントを消すことができます。 但し、タブや改行まで消えてしまいます。 これ以外の方法で実装しようとするとパーサを書き直すことになり大変ですので、この方法に Pretty Printer を組み合わせるのが現実的な回答だと思います。
1
2
3
4
5
6
7
8
(define decomment (lambda ()
  (let loop ((s (read)))
    (if (not (eof-object? s))
      (begin (write s) (newline) (loop (read)))))))

(define main (lambda (args)
  (decomment)
  0))

同じく,タブや改行は消えてしまいます.
writeだと,#0=(1 . #0#)で終わらないのでwirte/ssを使いました.
1
(port-for-each write/ss read)

すいません,訂正です.
#6573のでは,トップレベルに直接変数が書いてあった時に,くっ付いてしまいますね.
1
(port-for-each (lambda (s) (write/ss s) (newline)) read)

Index

Feed

Other

Link

Pathtraq

loading...