はじめまして。野田と申します。

配列をLisp形式で出力したいと思って↓のようなものを書いています。

def output( data )
  print "(\n"
  data.each do |word|
    if wordがArray型ならば
      output( word )
    else
      print "#{word}\n"
    end
  end
  print ")\n"
end

ここの「wordがArray型ならば」というところはどのように
書けばいいのでしょうか?

Lispで書くと
(defun output (list)
  (princ "(")
    (dolist (word list nil)
      (cond ((listp word)
             (output word))
            (t
             (princ word)))
     )
  (princ ")"))

;(setf a '((a b c) d ((e f) g)))
;(output a)

だと思うのですが,Rubyでlistpにあたる部分がわからない
次第です。

いろいろ本やウェブなど見ましたが,見つからず,
どうかお教えくださいです。m(_~_)m

---
nonta / yo.rim.or.jp