私はLispを学んでいます。再帰を使用して、アルファベット順に並べられた2つの文字列をマージするCommonLisp関数を実装しました。これが私のコードですが、何か問題があり、理解できませんでした。
(defun merge (F L)
(if (null F)
(if (null L)
F ; return f
( L )) ; else return L
;else if
(if (null L)
F) ; return F
;else if
(if (string< (substring F 0 1) (substring L 0 1)
(concat 'string (substring F 0 1)
(merge (substring F 1 (length F)) L)))
(
(concat 'string (substring L 0 1)
(merge F (substring L 1 (length L)) ))
))))
a = adf
編集:入力が文字列と文字列b = beg
であり、結果または出力がであるなど、2つの文字列をマージしたいだけですabdefg
。
前もって感謝します。