labunix's blog

labunixのラボUnix

lispのreverseを使った回文とそのチェックについて

■lispのreverseを使った回文とそのチェックについて
 bashだけなら以下。

 回文をチェックする。
 http://labunix.hateblo.jp/entry/2012/05/04/003001

■clisp+bash。
 reverseの結果もformat tに渡して一致すればカウントは2になる。

$ echo "しんぶんし" | \
    awk '{print "(format t (reverse \""$1"\"))(format t \""$0"\")"}' | \
    clisp -q | awk '/\[/{print $2}' | uniq -c
      2 しんぶんし

■gcl+bash
 gclのreverseは日本語に対応していないようだ。

$ echo "とまと" | \
    awk '{print "(format t (reverse \""$1"\"))(format t \""$0"\")"}' | \
    gcl | awk -F\> '/>/ && (NF>1){print $2}' | uniq -c
      1 ��㾁㨁
      1 とまと

■sbcl+bash
 sbclのreverseはclispと同様の結果。

$ echo "しんぶんし" | \
    awk '{print "(format t (reverse \""$1"\"))(format t \""$0"\")"}' | \
    sbcl | awk '/\*/ && (NF>1){print $2}' | uniq -c
      2 しんぶんし