見出し画像

進化的プログラミング超入門 108行でわかる / ど素人のLisp入門#1

進化計算が流行ってる。昨日NVIDIAから150億円相当の出資を受けたSakana.aiを筆頭に、進化計算ベンチャーとでもいうべきカテゴリーが生まれつつある。僕が創業に関わったギリア株式会社も、Ghelia Spectreという進化計算ソリューションによるビジネスを数年前から展開している。

進化計算の重要な点は、原理はともかく極めて有効であることがわかっていることだ。しかも恐ろしく強力なのである。

これから先、進化計算の重要性はますます上がってくる。僕が単なる人工知能の研究者をやめて、「生命と知能の研究者」になることにしたのも、人工知能を単体で研究することの限界が明らかになったからだ。

進化計算の最もシンプルな形は、遺伝的アルゴリズムである。遺伝的アルゴリズムは、遺伝子が進化するという前提に基づいている。

遺伝的アルゴリズムは進化計算の有効な方法論の一つではあるが、完璧ではない。なぜなら、遺伝子からアルゴリズムを生成する過程でどうしても限界があるからだ。簡単に言えば、遺伝的アルゴリズムでは、制御できるパラメータ数に限界があるのだ。

そこでより効果的な進化計算を行うためには、遺伝的プログラミングを行う必要がある。遺伝的プログラミングとは、遺伝的アルゴリズムとは異なり、プログラムそのものを遺伝子とみなしてプログラム同士を交配させ、品種改良していく。

遺伝的アルゴリズムは遺伝子の設計が非常に重要になる。遺伝子としてどのような情報を詰め込むか、プログラムとしてコントロールできるようにするかを重視するのに比べ、遺伝的プログラミングはプログラムコードそのものを混ぜ合わせるのでより柔軟なプログラムを生成することが期待される。

進化計算の代表的な二つの形式

遺伝的プログラミングは、色々な言語で実装可能であるが、最初の論文はLispというプログラミング言語で書かれたため、今でも慣習的にLispのS式を使って説明される。

Lispは他の言語に比べるとプログラムとデータの境目が限りなく曖昧というか、プログラムをデータとして扱い、同時にデータをプログラムとして扱うことができるという性質があるので、遺伝的プログラミングを説明しやすいというメリットがある。

最近僕がLispに再度注目しているのは、人間がLispコードを書くというよりも、LLMがアルゴリズムを考えるときにLispコードを使った方が他のプログラムを使うよりも効率的ではないかと思ったからだ。なぜならLispコードは、冗長性が少なく、意味が明快であり、タイプ数が少ないためだ。LLMではある概念を表現するためのトークン数が非常にクリティカルに効いてくるが、Lispコードはトークン数を節約できる可能性が高い。

そこで非常に簡単なLispによる進化的プログラミングの例をClaude-3に書かせてみた。

まず、大前提として、Lispの基本的な文法について説明する。
Lispのプログラムは全て「リスト」という形式で与えられ、その形式は常に以下のようになっている

( 関数 引数1 引数2 .... )

括弧で囲まれ、スペースで区切られたものの最初の要素が関数の名前であり、その後につづくのが引数である。形式としてはこれだけで、制御構造も文法的なスコープも全てこれだけで表せる。例えば複数の引数を取り、それらを全て足し合わせるplusという関数があった時、1+2をするLispプログラムは以下のようになる。

(plus 1 2)

plusという関数に1と2を渡している。
同じことをする関数が、Lispの組み込み関数として「+」と定義されている。

(+ 1 2)

同じように掛け算や引き算や割り算も定義されている。1+2*3をするLispプログラムは以下のようになる。

(+ 1 (* 2 3))

このように、カッコの最初の要素が関数名で、それに渡されるものがシンボルだというごくシンプルなルールしかないのだが、シンプルなルールの囲碁の方が将棋より覚えるのが難しいのと同様に、LispはC言語やPythonよりも覚えるのが難しいと言われている。

というのも、全ての構造を括弧で括った形式(これをS式と呼ぶ)で表現するために、以上にカッコの数が多くなってしまい、人間がだんだん把握できなくなってくるからだ。

しかし人間以外の知能、つまりAIが前提とされる現在においては、人間にとって快適かどうかよりもAIにとって簡潔かどうかの方が重要なポイントになる。

ここで、例として使うものはなんでも良かったのだが、僕としては最終的にLLMのプロンプトチューニングを進化計算にしたいと思っているので、複数のフレーズを組み合わせて目的に対して最適化(進化)するようなプログラムを書かせたいと思い、こんな例を考えた。

「複数のフレーズを組みあせて30文字ぴったりのラブレターを作る進化計算をしたい」

文字数にしたのはあとでLLMによる評価にするにしても、LLMを呼び出すのは計算が大変(時間がかかる)ので、まずは手軽に進化計算だけを試したいからだ。

実装にはsbclを使用した。Mac単体でももちろん動く。

すると、claude-3はこんなプログラムを書いた。

(defparameter *phrases*
  '("愛しています" "君は僕の太陽" "永遠に一緒にいたい" "君なしでは生きられない"
    "君は最高の人" "心から大切に思っている" "幸せをくれてありがとう" "君と過ごす時間が宝物"))

まず、典型的なフレーズをClaude-3が考えた。「愛してます」とか「君は最高の人」とかである。

これを組みあせたり繰り返したりしながらできるだけ理想的(今回は30文字ぴったりで終わる)なラブレターを作るプログラムを進化的に求める。

完全なソースコードはあとで示すとして、とりあえずemoevalと名付けたこのプログラムが生成してきたプログラムの第一世代はこんな感じだった。

Running love letter genetic programming algorithm with native Lisp code (fixed)...

Generation 0:
Score:  90 | Letter: 君と過ごす時間が宝物君なしでは生きられない心から大切に思っている (Length: 32)
Program: (CONCATENATE 'STRING '"君と過ごす時間が宝物"
                      (CONCATENATE 'STRING '"君なしでは生きられない" '"心から大切に思っている"))

Score:   0 | Letter: Error: The variable #:RESULT154 is unbound. (Length: 43)
Program: (LET ((#:RESULT153 '"君は僕の太陽"))
           (IF (<= (LENGTH #:RESULT154) 9)
               (CONCATENATE 'STRING #:RESULT155 '"君は僕の太陽")
               #:RESULT156))

Score:   0 | Letter: Error: The variable #:RESULT158 is unbound. (Length: 43)
Program: (LET ((#:RESULT157
                (IF (<= (LENGTH '"君なしでは生きられない") 7)
                    (CONCATENATE 'STRING '"愛しています" '"心から大切に思っている")
                    '"君は最高の人")))
           (IF (<= (LENGTH #:RESULT158) 19)
               (CONCATENATE 'STRING #:RESULT159 '"愛しています")
               #:RESULT160))

Score:   0 | Letter: Error: The variable #:RESULT162 is unbound. (Length: 43)
Program: (LET ((#:RESULT161 '"愛しています"))
           (IF (<= (LENGTH #:RESULT162) 24)
               (CONCATENATE 'STRING #:RESULT163 '"君と過ごす時間が宝物")
               #:RESULT164))

Score:   0 | Letter: 君は最高の人 (Length: 6)
Program: '"君は最高の人"

Score:   0 | Letter: Error: The variable #:RESULT166 is unbound. (Length: 43)
Program: (LET ((#:RESULT165 '"君は最高の人"))
           (IF (<= (LENGTH #:RESULT166) 7)
               (CONCATENATE 'STRING #:RESULT167 '"君なしでは生きられない")
               #:RESULT168))

最初のプログラムはいきなり90点という高得点を叩き出している。
このプログラムを少し詳しくみてみる

(CONCATENATE 'STRING '"君と過ごす時間が宝物"
       (CONCATENATE 'STRING '"君なしでは生きられない" '"心から大切に思っている"))

非常にシンプルに「君と過ごす時間が宝物」というフレーズと、「君なしでは生きられない」「心から大切に思っている」というフレーズが単純に結合されている。

これが32文字なので、それほど悪くない。
しかし、50世代を経て色々なプログラムと後輩を繰り返すといくつも100点を取れるプログラムが自動的に得られる。

例えば以下のプログラムはピッタリ30文字に収まるように進化したプログラムだ。

(CONCATENATE 'STRING '"君と過ごす時間が宝物" 
                      '"君と過ごす時間が宝物" '"君と過ごす時間が宝物")

このプログラムで実際に生成されたラブレターは以下の通り

君と過ごす時間が宝物永遠に一緒にいたい幸せをくれてありがとう (Length: 30)

これが30文字ぴったりで100点を獲得している。
このラブレターが本当にいいか悪いかはともかくとして、evollmで与えた評価関数では30文字に近ければ近いほどいいのでこれは最適解の一つになる。

このevollmに与えている評価関数はこんな感じ

(defparameter *target-length* 30)

defun emoeval (program)
  (let* ((letter (execute-program program))
         (letter-length (length letter))
         (diff (abs (- letter-length *target-length*))))
    (if (search "Error:" letter)
        0
        (max 0 (- 100 (* 5 diff))))))

*target-length*は30と指定されており、これに近ければ近いほど100点に近づくようになっている。

もしももっと情緒的な評価指標が欲しければ、ここをLLMの呼び出しに変えればいい。

重要なのはプログラムがプログラム同士を交配してプログラムを生み出していることだ。

交配がどのように行われているのか興味を持った人のためにその部分のコードを抜き出してみる。

(defun crossover (parent1 parent2)
  (labels ((swap-random-node (node)
             (if (< (random 1.0) 0.1)
                 (generate-random-program 0)
                 (if (atom node)
                     node
                     (cons (car node)
                           (mapcar #'swap-random-node (cdr node)))))))
    (swap-random-node (if (< (random 1.0) 0.5) parent1 parent2))))

この関数crossoverは、両親となるプログラムを二つ受け取り、両親のプログラムの一部を子どもに受け継がせる、いわゆるセントラルドグマの役割を果たす。

リストとしてプログラムを与えることができるのでこういうことができる。他の言語ではなかな真似するのは難しいが、他の言語で実現する場合には本質的な機械Virtual Machineを設計してエミュレータ的に動かす必要がある。

ちなみに最初にランダムなプログラムを生成する部分はこちら

(defun generate-random-program (depth)
  (if (or (= depth *max-depth*) (< (random 1.0) 0.3))
      (list 'quote (nth (random (length *phrases*)) *phrases*))
      (case (random 5)
        (0 (list 'quote (nth (random (length *phrases*)) *phrases*)))
        (1 `(concatenate 'string ,(generate-random-program (1+ depth))
                                 ,(generate-random-program (1+ depth))))
        (2 `(concatenate 'string ,(generate-random-program (1+ depth))
                                 ,(generate-random-program (1+ depth))
                                 ,(generate-random-program (1+ depth))))
        (3 `(if (<= (length ,(generate-random-program (1+ depth))) 7)
                (concatenate 'string 
                             ,(generate-random-program (1+ depth))
                             ,(generate-random-program (1+ depth)))
                ,(generate-random-program (1+ depth))))
        (4 `(let ((,(gensym "RESULT") ,(generate-random-program (1+ depth))))
              (if (<= (length ,(gensym "RESULT")) ,(+ 5 (random 20)))
                  (concatenate 'string ,(gensym "RESULT") ,(generate-random-program (1+ depth)))
                  ,(gensym "RESULT")))))))

もっと複雑なコードを書かせたければここに新しい命令ブロックを追加すれば遺伝子の表現の幅をLispの表現の幅と同じくらいに広げることができる。

このプログラムはたった108行でありながら進化的プログラミングをちゃんと実装できている。

進化計算は非常に少ないプログラムで絶大な効果を生む方法なのである。

もっと役に立つ(実用的な)例を挙げなかったのは、かつての世界(AI以前の世界で)実用的な例を示しても、進化計算がなぜ今の時代に必要とされてるかぼやけてしまうと考えたからだ。

プロンプトを捻り出すために一度でも頭を悩ませた経験のある人なら、進化計算によるプロンプト生成がいかに強力な可能性を秘めているかすぐにご理解いただけたと思う。

実際のプログラムは以下

(defpackage :love-letter-gp
  (:use :cl))

(in-package :love-letter-gp)

(defparameter *population-size* 50)
(defparameter *generations* 50)
(defparameter *mutation-rate* 0.1)
(defparameter *max-depth* 5)
(defparameter *target-length* 30)

(defparameter *phrases*
  '("愛しています" "君は僕の太陽" "永遠に一緒にいたい" "君なしでは生きられない"
    "君は最高の人" "心から大切に思っている" "幸せをくれてありがとう" "君と過ごす時間が宝物"))

(defun generate-random-program (depth)
  (if (or (= depth *max-depth*) (< (random 1.0) 0.3))
      (list 'quote (nth (random (length *phrases*)) *phrases*))
      (case (random 5)
        (0 (list 'quote (nth (random (length *phrases*)) *phrases*)))
        (1 `(concatenate 'string ,(generate-random-program (1+ depth))
                                 ,(generate-random-program (1+ depth))))
        (2 `(concatenate 'string ,(generate-random-program (1+ depth))
                                 ,(generate-random-program (1+ depth))
                                 ,(generate-random-program (1+ depth))))
        (3 `(if (<= (length ,(generate-random-program (1+ depth))) 7)
                (concatenate 'string 
                             ,(generate-random-program (1+ depth))
                             ,(generate-random-program (1+ depth)))
                ,(generate-random-program (1+ depth))))
        (4 `(let ((,(gensym "RESULT") ,(generate-random-program (1+ depth))))
              (if (<= (length ,(gensym "RESULT")) ,(+ 5 (random 20)))
                  (concatenate 'string ,(gensym "RESULT") ,(generate-random-program (1+ depth)))
                  ,(gensym "RESULT")))))))

(defun crossover (parent1 parent2)
  (labels ((swap-random-node (node)
             (if (< (random 1.0) 0.1)
                 (generate-random-program 0)
                 (if (atom node)
                     node
                     (cons (car node)
                           (mapcar #'swap-random-node (cdr node)))))))
    (swap-random-node (if (< (random 1.0) 0.5) parent1 parent2))))

(defun mutate (program)
  (if (< (random 1.0) *mutation-rate*)
      (generate-random-program 0)
      program))

(defun safe-evaluate (program)
  (handler-case
      (let ((result (eval program)))
        (if (stringp result)
            result
            "Error: 不正な結果型"))
    (error (e) 
      (format nil "Error: ~A" e))))

(defun emoeval (program)
  (let* ((letter (safe-evaluate program))
         (letter-length (length letter))
         (diff (abs (- letter-length *target-length*))))
    (if (search "Error:" letter)
        0
        (max 0 (- 100 (* 5 diff))))))

(defun generate-population ()
  (loop repeat *population-size*
        collect (generate-random-program 0)))

(defun evolve (population)
  (let* ((scored-population (mapcar (lambda (program)
                                      (cons (emoeval program) program))
                                    population))
         (sorted-population (sort scored-population #'> :key #'car))
         (next-generation (list (cdar sorted-population))))
    (loop while (< (length next-generation) *population-size*)
          do (let* ((parent1 (cdr (nth (random (floor *population-size* 2)) sorted-population)))
                    (parent2 (cdr (nth (random (floor *population-size* 2)) sorted-population)))
                    (child (mutate (crossover parent1 parent2))))
               (push child next-generation)))
    next-generation))

(defun display-population (gen population)
  (format t "~%Generation ~D:~%" gen)
  (loop for program in population
        for letter = (safe-evaluate program)
        for score = (emoeval program)
        do (format t "Score: ~3D | Letter: ~A (Length: ~D)~%" 
                   score letter (length letter))
           (format t "Program: ~S~%~%" program)))

(defun run-genetic-algorithm ()
  (let ((population (generate-population)))
    (display-population 0 population)
    (dotimes (gen *generations*)
      (setf population (evolve population))
      (display-population (1+ gen) population))
    (values population)))

(defun main ()
  (format t "Running love letter genetic programming algorithm with native Lisp code (fixed)...~%")
  (run-genetic-algorithm)
  (format t "Genetic programming algorithm completed.~%"))

;; Run the program
(main)

参考までに、このプログラムが出力したラブレターを得るための試行錯誤のログを掲載する。このログの面白いところは、進化的プログラミングによって複雑な進化をたどりながら淘汰され、結局はシンプルな組み合わせに落ち着くところである。

生ログは300万行あり、noteの限界を超えてしまったので抜粋して掲載する

Running love letter genetic programming algorithm with native Lisp code (fixed)...

Generation 0:
Score:  90 | Letter: 君と過ごす時間が宝物君なしでは生きられない心から大切に思っている (Length: 32)
Program: (CONCATENATE 'STRING '"君と過ごす時間が宝物"
        (CONCATENATE 'STRING '"君なしでは生きられない" '"心から大切に思っている"))

Score:   0 | Letter: Error: The variable #:RESULT107 is unbound. (Length: 43)
Program: (CONCATENATE 'STRING '"愛しています"
        (LET ((#:RESULT105
        (CONCATENATE 'STRING
       (CONCATENATE 'STRING
             (CONCATENATE 'STRING
            '"永遠に一緒にいたい"
            '"愛しています"
            '"君は僕の太陽")
             (IF (<=
           (LENGTH '"君は最高の人")
           7)
          (CONCATENATE 'STRING
         '"心から大切に思っている"
         '"君は僕の太陽")
          '"永遠に一緒にいたい"))
       (CONCATENATE 'STRING
             (IF (<=
           (LENGTH '"愛しています")
           7)
          (CONCATENATE 'STRING
         '"君は最高の人"
         '"永遠に一緒にいたい")
          '"君と過ごす時間が宝物")
             (LET ((#:RESULT106
             '"心から大切に思っている"))
        (IF (<=
             (LENGTH
              #:RESULT107)
             11)
            (CONCATENATE
             'STRING
             #:RESULT108
             '"君なしでは生きられない")
            #:RESULT109)))
       (CONCATENATE 'STRING
             (LET ((#:RESULT110
             '"幸せをくれてありがとう"))
        (IF (<=
             (LENGTH
              #:RESULT111)
             19)
            (CONCATENATE
             'STRING
             #:RESULT112
             '"永遠に一緒にいたい")
            #:RESULT113))
             (IF (<=
           (LENGTH
            '"永遠に一緒にいたい")
           7)
          (CONCATENATE 'STRING
         '"幸せをくれてありがとう"
         '"君と過ごす時間が宝物")
          '"君は僕の太陽")
             '"愛しています"))))
   (IF (<= (LENGTH #:RESULT114) 21)
       (CONCATENATE 'STRING #:RESULT115
      (LET ((#:RESULT116 '"君は僕の太陽"))
        (IF (<= (LENGTH #:RESULT117) 14)
            (CONCATENATE 'STRING #:RESULT118
           (CONCATENATE
            'STRING
            '"君なしでは生きられない"
            (CONCATENATE
             'STRING '"愛しています"
             '"君は最高の人")))
            #:RESULT119)))
       #:RESULT120))
        (IF (<=
      (LENGTH
       (LET ((#:RESULT121
       (CONCATENATE 'STRING '"君は僕の太陽"
      (LET ((#:RESULT122
             '"永遠に一緒にいたい"))
        (IF (<= (LENGTH #:RESULT123)
         24)
            (CONCATENATE 'STRING
           #:RESULT124
           '"君と過ごす時間が宝物")
            #:RESULT125)))))
         (IF (<= (LENGTH #:RESULT126) 12)
      (CONCATENATE 'STRING #:RESULT127 '"君は僕の太陽")
      #:RESULT128)))
      7)
     (CONCATENATE 'STRING
           (CONCATENATE 'STRING '"幸せをくれてありがとう"
          '"心から大切に思っている"
          '"幸せをくれてありがとう")
           '"君は最高の人")
     '"君なしでは生きられない"))

Score:   0 | Letter: Error: The variable #:RESULT131 is unbound. (Length: 43)
Program: (LET ((#:RESULT129
  (IF (<=
       (LENGTH
        (IF (<= (LENGTH '"君は僕の太陽") 7)
     (CONCATENATE 'STRING
           (CONCATENATE 'STRING
          (CONCATENATE 'STRING
         '"永遠に一緒にいたい"
         '"君は最高の人")
          (IF (<=
        (LENGTH '"永遠に一緒にいたい")
        7)
       (CONCATENATE 'STRING
             '"永遠に一緒にいたい"
             '"君は最高の人")
       '"心から大切に思っている"))
           (CONCATENATE 'STRING
          (LET ((#:RESULT130
          '"君と過ごす時間が宝物"))
            (IF (<=
          (LENGTH #:RESULT131)
          15)
         (CONCATENATE 'STRING
               #:RESULT132
               '"君なしでは生きられない")
         #:RESULT133))
          '"心から大切に思っている"
          (CONCATENATE 'STRING
         '"君は最高の人"
         '"君は僕の太陽")))
     (CONCATENATE 'STRING
           (IF (<= (LENGTH '"君と過ごす時間が宝物") 7)
        (CONCATENATE 'STRING '"君と過ごす時間が宝物"
       '"君と過ごす時間が宝物")
        '"永遠に一緒にいたい")
           '"愛しています" '"君と過ごす時間が宝物")))
       7)
      (CONCATENATE 'STRING
     (CONCATENATE 'STRING '"愛しています"
           (LET ((#:RESULT134
           '"君なしでは生きられない"))
      (IF (<= (LENGTH #:RESULT135)
       24)
          (CONCATENATE 'STRING
         #:RESULT136
         '"心から大切に思っている")
          #:RESULT137))
           '"幸せをくれてありがとう")
     '"永遠に一緒にいたい")
      (CONCATENATE 'STRING
     (CONCATENATE 'STRING '"愛しています" '"君は僕の太陽")
     (CONCATENATE 'STRING '"心から大切に思っている"
           '"君と過ごす時間が宝物")
     '"愛しています"))))
    (IF (<= (LENGTH #:RESULT138) 7)
        (CONCATENATE 'STRING #:RESULT139
       (LET ((#:RESULT140 '"永遠に一緒にいたい"))
         (IF (<= (LENGTH #:RESULT141) 13)
      (CONCATENATE 'STRING #:RESULT142
            (LET ((#:RESULT143
            (IF (<=
          (LENGTH
           (LET ((#:RESULT144
           '"永遠に一緒にいたい"))
             (IF (<=
           (LENGTH
            #:RESULT145)
           7)
          (CONCATENATE
           'STRING
           #:RESULT146
           '"愛しています")
          #:RESULT147)))
          7)
         (CONCATENATE 'STRING
               '"永遠に一緒にいたい"
               '"君は僕の太陽")
         (IF (<=
              (LENGTH
        '"君は最高の人")
              7)
             (CONCATENATE
              'STRING
              '"愛しています"
              '"愛しています")
             '"心から大切に思っている"))))
       (IF (<= (LENGTH #:RESULT148)
        5)
           (CONCATENATE 'STRING
          #:RESULT149
          '"愛しています")
           #:RESULT150)))
      #:RESULT151)))
        #:RESULT152))

Score:   0 | Letter: 君と過ごす時間が宝物 (Length: 10)
Program: '"君と過ごす時間が宝物"

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:   0 | Letter: Error: The variable #:RESULT154 is unbound. (Length: 43)
Program: (LET ((#:RESULT153 '"君は僕の太陽"))
    (IF (<= (LENGTH #:RESULT154) 9)
        (CONCATENATE 'STRING #:RESULT155 '"君は僕の太陽")
        #:RESULT156))

Score:   0 | Letter: Error: The variable #:RESULT158 is unbound. (Length: 43)
Program: (LET ((#:RESULT157
  (IF (<= (LENGTH '"君なしでは生きられない") 7)
      (CONCATENATE 'STRING '"愛しています" '"心から大切に思っている")
      '"君は最高の人")))
    (IF (<= (LENGTH #:RESULT158) 19)
        (CONCATENATE 'STRING #:RESULT159 '"愛しています")
        #:RESULT160))

Score:   0 | Letter: Error: The variable #:RESULT162 is unbound. (Length: 43)
Program: (LET ((#:RESULT161 '"愛しています"))
    (IF (<= (LENGTH #:RESULT162) 24)
        (CONCATENATE 'STRING #:RESULT163 '"君と過ごす時間が宝物")
        #:RESULT164))

Score:   0 | Letter: 君は最高の人 (Length: 6)
Program: '"君は最高の人"

Score:   0 | Letter: Error: The variable #:RESULT166 is unbound. (Length: 43)
Program: (LET ((#:RESULT165 '"君は最高の人"))
    (IF (<= (LENGTH #:RESULT166) 7)
        (CONCATENATE 'STRING #:RESULT167 '"君なしでは生きられない")
        #:RESULT168))

Generation 1:
Score:   5 | Letter: 幸せをくれてありがとう (Length: 11)
Program: '"幸せをくれてありがとう"

Score:  30 | Letter: 君と過ごす時間が宝物愛しています (Length: 16)
Program: (CONCATENATE 'STRING '"君と過ごす時間が宝物" '"愛しています")

Score:   0 | Letter: Error: The variable #:RESULT943 is unbound. (Length: 43)
Program: (CONCATENATE 'STRING '"君と過ごす時間が宝物"
        (LET ((#:RESULT941
        (LET ((#:RESULT942
        (IF (<=
      (LENGTH
       (CONCATENATE 'STRING '"君は最高の人"
             (IF (<=
           (LENGTH
            '"幸せをくれてありがとう")
           7)
          (CONCATENATE 'STRING
         '"君は最高の人"
         '"君と過ごす時間が宝物")
          '"心から大切に思っている")
             '"心から大切に思っている"))
      7)
     (CONCATENATE 'STRING '"君は最高の人"
           '"幸せをくれてありがとう")
     (CONCATENATE 'STRING '"君は最高の人"
           '"君なしでは生きられない"))))
          (IF (<= (LENGTH #:RESULT943) 8)
       (CONCATENATE 'STRING #:RESULT944
      '"君なしでは生きられない")
       #:RESULT945))))
   (IF (<= (LENGTH #:RESULT946) 21)
       (CONCATENATE 'STRING #:RESULT947
      (IF (<=
           (LENGTH
            (IF (<=
          (LENGTH
           (LET ((#:RESULT948
           '"心から大切に思っている"))
             (IF (<=
           (LENGTH
            #:RESULT949)
           6)
          (CONCATENATE 'STRING
         #:RESULT950
         '"幸せをくれてありがとう")
          #:RESULT951)))
          7)
         (CONCATENATE 'STRING
        (LET ((#:RESULT952
               (CONCATENATE
         'STRING
         '"心から大切に思っている"
         '"愛しています")))
          (IF (<=
               (LENGTH
         #:RESULT953)
               11)
              (CONCATENATE
               'STRING
               #:RESULT954
               (IF (<=
             (LENGTH
              '"愛しています")
             7)
            (CONCATENATE
             'STRING
             '"愛しています"
             '"愛しています")
            '"幸せをくれてありがとう"))
              #:RESULT955))
        '"君なしでは生きられない")
         (IF (<=
       (LENGTH
        (IF (<=
             (LENGTH
              '"幸せをくれてありがとう")
             7)
            (CONCATENATE
             'STRING
             '"永遠に一緒にいたい"
             '"心から大切に思っている")
            '"君は最高の人"))
       7)
             (CONCATENATE 'STRING
            '"君と過ごす時間が宝物"
            '"君は僕の太陽")
             (LET ((#:RESULT956
             '"幸せをくれてありがとう"))
        (IF (<=
             (LENGTH
              #:RESULT957)
             15)
            (CONCATENATE
             'STRING
             #:RESULT958
             '"愛しています")
            #:RESULT959)))))
           7)
          (CONCATENATE 'STRING
         (LET ((#:RESULT960
         (CONCATENATE
          'STRING
          '"君は僕の太陽"
          (IF (<=
               (LENGTH
         '"心から大切に思っている")
               7)
              (CONCATENATE
               'STRING
               '"幸せをくれてありがとう"
               '"幸せをくれてありがとう")
              '"幸せをくれてありがとう")
          '"幸せをくれてありがとう")))
           (IF (<=
         (LENGTH
          #:RESULT961)
         8)
        (CONCATENATE
         'STRING
         #:RESULT962
         (LET ((#:RESULT963
         '"幸せをくれてありがとう"))
           (IF (<=
         (LENGTH
          #:RESULT964)
         15)
               (CONCATENATE
         'STRING
         #:RESULT965
         (CONCATENATE
          'STRING
          '"君は僕の太陽"
          '"心から大切に思っている"))
               #:RESULT966)))
        #:RESULT967))
         (CONCATENATE 'STRING
               '"君は僕の太陽"
               '"君は僕の太陽"
               '"君は僕の太陽"))
          '"君なしでは生きられない"))
       #:RESULT968)))

Score:   0 | Letter: 愛しています (Length: 6)
Program: '"愛しています"

Score:  35 | Letter: 君は最高の人心から大切に思っている (Length: 17)
Program: (IF (<= (LENGTH '"愛しています") 7)
      (CONCATENATE 'STRING '"君は最高の人" '"心から大切に思っている")
      (IF (<= '"永遠に一緒にいたい" 7)
   (CONCATENATE 'STRING
         (CONCATENATE 'STRING
        (LET (IF
       (<= (LENGTH '"君は最高の人") 7)
       (CONCATENATE
        'STRING
        '"君なしでは生きられない"
        (LET ((#:RESULT873
        '"心から大切に思っている"))
          (IF (<=
        (LENGTH #:RESULT874)
        16)
       (CONCATENATE 'STRING
             #:RESULT875
             '"幸せをくれてありがとう")
       #:RESULT876)))
       (IF
        (<=
         (LENGTH
          (IF (<=
        (LENGTH
         '"心から大切に思っている")
        7)
       (CONCATENATE 'STRING
             (IF (<=
           (LENGTH
            '"君は僕の太陽")
           7)
          (CONCATENATE
           'STRING
           (CONCATENATE
            'STRING
            '"君は最高の人"
            '"幸せをくれてありがとう"
            '"幸せをくれてありがとう")
           (LET ((#:RESULT877
           '"君と過ごす時間が宝物"))
             (IF (<=
           (LENGTH
            #:RESULT878)
           23)
          (CONCATENATE
           'STRING
           #:RESULT879
           '"君は最高の人")
          #:RESULT880)))
          (CONCATENATE
           'STRING
           '"君は最高の人"
           '"愛しています"
           '"君と過ごす時間が宝物"))
             '"君は僕の太陽")
       (CONCATENATE 'STRING
             (IF (<=
           (LENGTH
            '"君は僕の太陽")
           7)
          (CONCATENATE
           'STRING
           '"永遠に一緒にいたい"
           '"君は僕の太陽")
          '"永遠に一緒にいたい")
             '"君なしでは生きられない"
             '"君と過ごす時間が宝物")))
         7)
        (CONCATENATE 'STRING
              (CONCATENATE
        'STRING
        (LET ((#:RESULT881
               '"君は僕の太陽"))
          (IF (<=
               (LENGTH
         #:RESULT882)
               6)
              (CONCATENATE
               'STRING
               #:RESULT883
               (IF (<=
             (LENGTH
              '"君と過ごす時間が宝物")
             7)
            (CONCATENATE
             'STRING
             '"幸せをくれてありがとう"
             '"幸せをくれてありがとう")
            '"君は最高の人"))
              #:RESULT884))
        (CONCATENATE
         'STRING
         '"君は僕の太陽"
         '"君と過ごす時間が宝物"))
              (IF (<=
            (LENGTH
             (CONCATENATE
              'STRING
              (CONCATENATE
               'STRING
               '"愛しています"
               '"君と過ごす時間が宝物")
              (IF (<=
            (LENGTH
             '"君は僕の太陽")
            7)
           (CONCATENATE
            'STRING
            '"君は僕の太陽"
            '"君と過ごす時間が宝物")
           '"愛しています")
              '"君なしでは生きられない"))
            7)
           (CONCATENATE
            'STRING
            '"永遠に一緒にいたい"
            (CONCATENATE
             'STRING
             (IF (<=
           (LENGTH
            '"君は最高の人")
           7)
          (CONCATENATE
           'STRING
           '"永遠に一緒にいたい"
           '"君と過ごす時間が宝物")
          '"君と過ごす時間が宝物")
             (LET ((#:RESULT885
             '"君は最高の人"))
               (IF (<=
             (LENGTH
              #:RESULT886)
             15)
            (CONCATENATE
             'STRING
             #:RESULT887
             '"君と過ごす時間が宝物")
            #:RESULT888))
             '"幸せをくれてありがとう"))
           (LET ((#:RESULT889
           '"愛しています"))
             (IF (<=
           (LENGTH
            #:RESULT890)
           14)
          (CONCATENATE
           'STRING
           #:RESULT891
           '"愛しています")
          #:RESULT892))))
        (CONCATENATE 'STRING
              (CONCATENATE
        'STRING
        '"愛しています"
        '"君と過ごす時間が宝物")
              (LET ((#:RESULT893
              '"君は最高の人"))
         (IF (<=
              (LENGTH
               #:RESULT894)
              23)
             (CONCATENATE
              'STRING
              #:RESULT895
              '"君と過ごす時間が宝物")
             #:RESULT896))
              '"君は僕の太陽")))
          (IF (<= (LENGTH #:RESULT194) 7)
       (CONCATENATE 'STRING
             #:RESULT195
             (IF (<=
           (LENGTH
            '"幸せをくれてありがとう")
           7)
          (CONCATENATE
           'STRING
           '"愛しています"
           '"君は最高の人")
          '"君は最高の人"))
       #:RESULT196))
        (IF (<= (LENGTH '"君と過ごす時間が宝物") 7)
            (CONCATENATE 'STRING
           '"心から大切に思っている"
           '(IF (<=
          (LENGTH
           (IF (<=
         (LENGTH
          '"愛しています")
         7)
               (CONCATENATE
         'STRING
         '"君は最高の人"
         '"君は最高の人")
               '"君なしでは生きられない"))
          7)
         (CONCATENATE
          'STRING
          (IF (<=
               (LENGTH
         (LET ((#:RESULT897
                '"君は最高の人"))
           (IF (<=
                (LENGTH
          #:RESULT898)
                24)
               (CONCATENATE
                'STRING
                #:RESULT899
                (CONCATENATE
          'STRING
          '"心から大切に思っている"
          (LET ((#:RESULT900
                 '"君は僕の太陽"))
            (IF (<=
                 (LENGTH
           #:RESULT901)
                 14)
                (CONCATENATE
                 'STRING
                 #:RESULT902
                 '"永遠に一緒にいたい")
                #:RESULT903))
          (CONCATENATE
           'STRING
           '"心から大切に思っている"
           '"君と過ごす時間が宝物"
           '"君は僕の太陽")))
               #:RESULT904)))
               7)
              (CONCATENATE
               'STRING
               (LET ((#:RESULT905
               (CONCATENATE
                'STRING
                '"永遠に一緒にいたい"
                (CONCATENATE
          'STRING
          '"君と過ごす時間が宝物"
          '"君なしでは生きられない"
          '"君は最高の人"))))
          (IF (<=
               (LENGTH
                #:RESULT906)
               14)
              (CONCATENATE
               'STRING
               #:RESULT907
               (CONCATENATE
                'STRING
                (CONCATENATE
          'STRING
          '"永遠に一緒にいたい"
          '"幸せをくれてありがとう"
          '"君は最高の人")
                (IF (<=
              (LENGTH
               '"君は僕の太陽")
              7)
             (CONCATENATE
              'STRING
              '"愛しています"
              '"永遠に一緒にいたい")
             '"永遠に一緒にいたい")))
              #:RESULT908))
               (CONCATENATE
         'STRING
         '"君なしでは生きられない"
         '"愛しています"
         (IF (<=
              (LENGTH
               (CONCATENATE
                'STRING
                '"君は最高の人"
                '"愛しています"))
              7)
             (CONCATENATE
              'STRING
              (LET ((#:RESULT909
              '"君と過ごす時間が宝物"))
                (IF (<=
              (LENGTH
               #:RESULT910)
              15)
             (CONCATENATE
              'STRING
              #:RESULT911
              '"愛しています")
             #:RESULT912))
              (CONCATENATE
               'STRING
               '"永遠に一緒にいたい"
               '"愛しています"))
             (LET ((#:RESULT913
             '"幸せをくれてありがとう"))
               (IF (<=
             (LENGTH
              #:RESULT914)
             9)
            (CONCATENATE
             'STRING
             #:RESULT915
             '"心から大切に思っている")
            #:RESULT916)))))
              '"君なしでは生きられない")
          '"心から大切に思っている")
         '"心から大切に思っている"))
            (CONCATENATE 'STRING '"君は最高の人"
           '"君は僕の太陽"
           '"幸せをくれてありがとう")))
         (CONCATENATE 'STRING '"君なしでは生きられない" '"愛しています"
        '"君と過ごす時間が宝物"))
   (LET (CONCATENATE
         (QUOTE STRING)
         (CONCATENATE
   'STRING
   (CONCATENATE 'STRING
         (LET ((#:RESULT917
         (CONCATENATE 'STRING '"君と過ごす時間が宝物"
        '"愛しています" '"愛しています")))
           (IF (<= (LENGTH #:RESULT918) 13)
        (CONCATENATE 'STRING #:RESULT919
       '"永遠に一緒にいたい")
        #:RESULT920))
         '"愛しています"
         (LET ((#:RESULT921 '"愛しています"))
           (IF (<= (LENGTH #:RESULT922) 18)
        (CONCATENATE 'STRING #:RESULT923
       '"幸せをくれてありがとう")
        #:RESULT924)))
   (CONCATENATE 'STRING '"永遠に一緒にいたい" '"幸せをくれてありがとう"
         (LET ((#:RESULT925
         (CONCATENATE 'STRING '"君なしでは生きられない"
        '"永遠に一緒にいたい")))
           (IF (<= (LENGTH #:RESULT926) 22)
        (CONCATENATE 'STRING #:RESULT927
       (LET ((#:RESULT928
              '"君と過ごす時間が宝物"))
         (IF (<=
              (LENGTH
        #:RESULT929)
              21)
             (CONCATENATE
              'STRING
              #:RESULT930
              '"愛しています")
             #:RESULT931)))
        #:RESULT932)))
   (IF (<=
        (LENGTH
         (CONCATENATE 'STRING
        (CONCATENATE 'STRING '"君は最高の人"
       '"君と過ごす時間が宝物"
       '"永遠に一緒にいたい")
        (CONCATENATE 'STRING '"愛しています"
       '"永遠に一緒にいたい"
       '"心から大切に思っている")))
        7)
       (CONCATENATE 'STRING '"君は僕の太陽"
      (LET ((#:RESULT933 '"君なしでは生きられない"))
        (IF (<= (LENGTH #:RESULT934) 18)
            (CONCATENATE 'STRING #:RESULT935
           (LET ((#:RESULT936
           '"君は僕の太陽"))
             (IF (<=
           (LENGTH
            #:RESULT937)
           15)
          (CONCATENATE
           'STRING
           #:RESULT938
           '"幸せをくれてありがとう")
          #:RESULT939)))
            #:RESULT940)))
       (IF (<= (LENGTH '"幸せをくれてありがとう") 7)
    (CONCATENATE 'STRING
          (CONCATENATE 'STRING '"君と過ごす時間が宝物"
         '"幸せをくれてありがとう")
          '"心から大切に思っている")
    (CONCATENATE 'STRING '"君と過ごす時間が宝物"
          '"君なしでは生きられない" '"君なしでは生きられない"))))
         (QUOTE "君なしでは生きられない"))
     (CONCATENATE 'STRING '"君は最高の人" '"幸せをくれてありがとう"
    '"幸せをくれてありがとう"))))

Score:   0 | Letter: Error: The variable #:RESULT862 is unbound. (Length: 43)
Program: (CONCATENATE 'STRING '"君は最高の人" '"君は最高の人"
        (LET ((#:RESULT861 '"心から大切に思っている"))
   (IF (<= (LENGTH #:RESULT862) 22)
       (CONCATENATE 'STRING #:RESULT863
      (LET ((#:RESULT864
      (LET ((#:RESULT865
             (IF (<=
           (LENGTH '"愛しています")
           7)
          (CONCATENATE 'STRING
         '"君と過ごす時間が宝物"
         '"君は僕の太陽")
          '"永遠に一緒にいたい")))
        (IF (<= (LENGTH #:RESULT866)
         10)
            (CONCATENATE 'STRING
           #:RESULT867
           (CONCATENATE
            'STRING
            '"愛しています"
            '"心から大切に思っている"
            '"心から大切に思っている"))
            #:RESULT868))))
        (IF (<= (LENGTH #:RESULT869) 12)
            (CONCATENATE 'STRING #:RESULT870
           '"君は最高の人")
            #:RESULT871)))
       #:RESULT872)))

Score:   0 | Letter: Error: bad thing to be a type specifier: "君は僕の太陽" (Length: 49)
Program: (CONCATENATE '"君は僕の太陽" '"心から大切に思っている"
        (CONCATENATE 'STRING '"幸せをくれてありがとう" '"君と過ごす時間が宝物")
        '"愛しています")

Generation 2:
Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   0 | Letter: Error: The variable #:RESULT1522 is unbound. (Length: 44)
Program: (CONCATENATE 'STRING
        (CONCATENATE 'STRING
       (CONCATENATE 'STRING '"愛しています"
      (CONCATENATE 'STRING
            (LET ((#:RESULT1521
            '"君と過ごす時間が宝物"))
              (IF (<=
            (LENGTH
             #:RESULT1522)
            10)
           (CONCATENATE
            'STRING
            #:RESULT1523
            '"君は僕の太陽")
           #:RESULT1524))
            '"君なしでは生きられない"
            '"幸せをくれてありがとう")
      '"君と過ごす時間が宝物")
       (LET ((#:RESULT1525
       (IF (<=
            (LENGTH
      (LET ((#:RESULT1526
             '"幸せをくれてありがとう"))
        (IF (<= (LENGTH #:RESULT1527)
         14)
            (CONCATENATE 'STRING
           #:RESULT1528
           '"君と過ごす時間が宝物")
            #:RESULT1529)))
            7)
           (CONCATENATE 'STRING '"君は最高の人"
          '"幸せをくれてありがとう")
           (IF (<= (LENGTH '"君は最高の人") 7)
        (CONCATENATE 'STRING
              '"君は最高の人"
              '"心から大切に思っている")
        '"君は最高の人"))))
         (IF (<= (LENGTH #:RESULT1530) 13)
      (CONCATENATE 'STRING #:RESULT1531
            (IF (<=
          (LENGTH '"君は最高の人")
          7)
         (CONCATENATE 'STRING
               '"君と過ごす時間が宝物"
               (IF (<=
             (LENGTH
              '"君なしでは生きられない")
             7)
            (CONCATENATE
             'STRING
             '"君は僕の太陽"
             '"君は最高の人")
            '"愛しています"))
         (IF (<=
              (LENGTH
        '"永遠に一緒にいたい")
              7)
             (CONCATENATE
              'STRING
              '"幸せをくれてありがとう"
              '"君は僕の太陽")
             '"君と過ごす時間が宝物")))
      #:RESULT1532))
       (IF (<=
     (LENGTH
      (CONCATENATE 'STRING
            (CONCATENATE 'STRING
           '"君は最高の人"
           '"君と過ごす時間が宝物"
           '"愛しています")
            '"心から大切に思っている"
            (CONCATENATE 'STRING
           '"君と過ごす時間が宝物"
           '"君と過ごす時間が宝物"
           '"君は僕の太陽")))
     7)
           (CONCATENATE 'STRING
          (LET ((#:RESULT1533
          (CONCATENATE 'STRING
         '"君は僕の太陽"
         '"愛しています")))
            (IF (<=
          (LENGTH
           #:RESULT1534)
          23)
         (CONCATENATE 'STRING
               #:RESULT1535
               (CONCATENATE
         'STRING
         '"君は僕の太陽"
         '"君と過ごす時間が宝物"))
         #:RESULT1536))
          '"君と過ごす時間が宝物")
           (LET ((#:RESULT1537
           (LET ((#:RESULT1538 '"愛しています"))
      (IF (<= (LENGTH #:RESULT1539)
       12)
          (CONCATENATE 'STRING
         #:RESULT1540
         '"愛しています")
          #:RESULT1541))))
      (IF (<= (LENGTH #:RESULT1542) 18)
          (CONCATENATE 'STRING #:RESULT1543
         (CONCATENATE 'STRING
               '"君は僕の太陽"
               '"君は僕の太陽"))
          #:RESULT1544))))
        (CONCATENATE 'STRING
       (CONCATENATE 'STRING '"君なしでは生きられない"
      (IF (<=
           (LENGTH
            (LET ((#:RESULT1545
            '"君と過ごす時間が宝物"))
       (IF (<=
            (LENGTH
             #:RESULT1546)
            24)
           (CONCATENATE
            'STRING
            #:RESULT1547
            '"永遠に一緒にいたい")
           #:RESULT1548)))
           7)
          (CONCATENATE 'STRING
         (LET ((#:RESULT1549
         '"幸せをくれてありがとう"))
           (IF (<=
         (LENGTH
          #:RESULT1550)
         23)
               (CONCATENATE
         'STRING
         #:RESULT1551
         '"君なしでは生きられない")
               #:RESULT1552))
         (IF (<=
              (LENGTH
               '"永遠に一緒にいたい")
              7)
             (CONCATENATE
              'STRING
              '"君なしでは生きられない"
              '"永遠に一緒にいたい")
             '"君なしでは生きられない"))
          '"君と過ごす時間が宝物"))
       '"心から大切に思っている"))

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:   0 | Letter: Error: The variable #:RESULT1294 is unbound. (Length: 44)
Program: (IF (<=
       (CONCATENATE 'STRING '"君と過ごす時間が宝物"
      (CONCATENATE 'STRING
     (LET ((#:RESULT1293
            (CONCATENATE 'STRING
           (IF (<=
         (LENGTH
          '"君は僕の太陽")
         7)
        (CONCATENATE
         'STRING
         '"君と過ごす時間が宝物"
         '"心から大切に思っている")
        '"永遠に一緒にいたい")
           (IF (<=
         (LENGTH
          '"心から大切に思っている")
         7)
        (CONCATENATE
         'STRING
         '"君は最高の人"
         '"君は最高の人")
        '"君は僕の太陽"))))
       (IF (<= (LENGTH #:RESULT1294) 7)
           (CONCATENATE 'STRING #:RESULT1295
          '"君は僕の太陽")
           #:RESULT1296))
     '"君は僕の太陽")
      '"君なしでは生きられない")
       7)
      (CONCATENATE 'STRING '"君は最高の人" '"心から大切に思っている")
      (IF (LET ((#:RESULT1297 '"永遠に一緒にいたい"))
     (IF (<= (LENGTH #:RESULT1298) 7)
         (CONCATENATE 'STRING #:RESULT1299
        (IF (<=
      (LENGTH
       (CONCATENATE 'STRING
             (IF (<=
           (LENGTH
            (CONCATENATE
             'STRING '"愛しています"
             '"君は僕の太陽"
             '"永遠に一緒にいたい"))
           7)
          (CONCATENATE 'STRING
         (CONCATENATE
          'STRING
          '"君は最高の人"
          '"君は最高の人"
          '"君は僕の太陽")
         (CONCATENATE
          'STRING
          '"愛しています"
          '"心から大切に思っている"
          '"幸せをくれてありがとう"))
          (LET ((#:RESULT1300
          '"君は僕の太陽"))
            (IF (<=
          (LENGTH
           #:RESULT1301)
          17)
         (CONCATENATE
          'STRING
          #:RESULT1302
          '"幸せをくれてありがとう")
         #:RESULT1303)))
             '"愛しています"
             '"君なしでは生きられない"))
      7)
     (CONCATENATE 'STRING
           (IF (<=
         (LENGTH
          (IF (<=
        (LENGTH
         '"幸せをくれてありがとう")
        7)
              (CONCATENATE
        'STRING
        (IF (<=
             (LENGTH
              '"君は僕の太陽")
             7)
            (CONCATENATE
             'STRING
             '"心から大切に思っている"
             '"君は最高の人")
            '"心から大切に思っている")
        '"君なしでは生きられない")
              (CONCATENATE
        'STRING
        '"君なしでは生きられない"
        '"幸せをくれてありがとう"
        '"幸せをくれてありがとう")))
         7)
        (CONCATENATE 'STRING
              (LET ((#:RESULT1304
              (LET ((#:RESULT1305
              '"永遠に一緒にいたい"))
                (IF (<=
              (LENGTH
               #:RESULT1306)
              16)
             (CONCATENATE
              'STRING
              #:RESULT1307
              '"君なしでは生きられない")
             #:RESULT1308))))
         (IF (<=
              (LENGTH
               #:RESULT1309)
              9)
             (CONCATENATE
              'STRING
              #:RESULT1310
              (IF (<=
            (LENGTH
             '"君は僕の太陽")
            7)
           (CONCATENATE
            'STRING
            '"永遠に一緒にいたい"
            '"君は僕の太陽")
           '"幸せをくれてありがとう"))
             #:RESULT1311))
              (IF (<=
            (LENGTH
             (CONCATENATE
              'STRING
              '"君と過ごす時間が宝物"
              '"君なしでは生きられない"))
            7)
           (CONCATENATE
            'STRING
            '"君なしでは生きられない"
            (CONCATENATE
             'STRING
             '"幸せをくれてありがとう"
             '"永遠に一緒にいたい"))
           (CONCATENATE
            'STRING
            '"君は最高の人"
            '"君なしでは生きられない"
            '"永遠に一緒にいたい")))
        '"幸せをくれてありがとう")
           (LET ((#:RESULT1312
           (LET ((#:RESULT1313
           (CONCATENATE
            'STRING
            '"心から大切に思っている"
            '"幸せをくれてありがとう")))
             (IF (<=
           (LENGTH
            #:RESULT1314)
           14)
          (CONCATENATE
           'STRING
           #:RESULT1315
           '"君は最高の人")
          #:RESULT1316))))
             (IF (<=
           (LENGTH
            #:RESULT1317)
           13)
          (CONCATENATE 'STRING
         #:RESULT1318
         (IF (<=
              (LENGTH
               (LET ((#:RESULT1319
               '"愛しています"))
          (IF (<=
               (LENGTH
                #:RESULT1320)
               20)
              (CONCATENATE
               'STRING
               #:RESULT1321
               '"君は最高の人")
              #:RESULT1322)))
              7)
             (CONCATENATE
              'STRING
              (CONCATENATE
               'STRING
               '"心から大切に思っている"
               '"君と過ごす時間が宝物"
               '"愛しています")
              '"君は僕の太陽")
             (CONCATENATE
              'STRING
              '"君なしでは生きられない"
              '"愛しています")))
          #:RESULT1323)))
     '"心から大切に思っている"))
         #:RESULT1324))
   (CONCATENATE 'STRING
         (CONCATENATE 'STRING
        (CONCATENATE 'STRING
       (LET ((#:RESULT1325
              (CONCATENATE
        'STRING
        '"君なしでは生きられない"
        (CONCATENATE
         'STRING
         '"幸せをくれてありがとう"
         '"君は僕の太陽"))))
         (IF (<=
              (LENGTH
        #:RESULT1326)
              13)
             (CONCATENATE
              'STRING
              #:RESULT1327
              (IF (<=
            (LENGTH
             (CONCATENATE
              'STRING
              '"君は最高の人"
              '"永遠に一緒にいたい"
              '"君なしでは生きられない"))
            7)
           (CONCATENATE
            'STRING
            (LET ((#:RESULT1328
            '"君なしでは生きられない"))
              (IF (<=
            (LENGTH
             #:RESULT1329)
            21)
           (CONCATENATE
            'STRING
            #:RESULT1330
            '"君は僕の太陽")
           #:RESULT1331))
            (CONCATENATE
             'STRING
             '"君なしでは生きられない"
             '"君と過ごす時間が宝物"))
           '"愛しています"))
             #:RESULT1332))
       (CONCATENATE 'STRING
             (LET ((#:RESULT1333
             (IF (<=
           (LENGTH
            '"君と過ごす時間が宝物")
           7)
          (CONCATENATE
           'STRING
           '"愛しています"
           '"心から大切に思っている")
          '"幸せをくれてありがとう")))
               (IF (<=
             (LENGTH
              #:RESULT1334)
             17)
            (CONCATENATE
             'STRING
             #:RESULT1335
             '"君は最高の人")
            #:RESULT1336))
             (LET ((#:RESULT1337
             (IF (<=
           (LENGTH
            '"幸せをくれてありがとう")
           7)
          (CONCATENATE
           'STRING
           '"永遠に一緒にいたい"
           '"君なしでは生きられない")
          '"永遠に一緒にいたい")))
               (IF (<=
             (LENGTH
              #:RESULT1338)
             5)
            (CONCATENATE
             'STRING
             #:RESULT1339
             (IF (<=
           (LENGTH
            '"君なしでは生きられない")
           7)
          (CONCATENATE
           'STRING
           '"君は最高の人"
           '"君は僕の太陽")
          '"愛しています"))
            #:RESULT1340))
             (LET ((#:RESULT1341
             '"君と過ごす時間が宝物"))
               (IF (<=
             (LENGTH
              #:RESULT1342)
             15)
            (CONCATENATE
             'STRING
             #:RESULT1343
             (LET ((#:RESULT1344
             '"永遠に一緒にいたい"))
               (IF (<=
             (LENGTH
              #:RESULT1345)
             7)
            (CONCATENATE
             'STRING
             #:RESULT1346
             '"君なしでは生きられない")
            #:RESULT1347)))
            #:RESULT1348)))
       (CONCATENATE 'STRING
             '"心から大切に思っている"
             (CONCATENATE
              'STRING
              '"幸せをくれてありがとう"
              (CONCATENATE
               'STRING
               '"君は最高の人"
               '"永遠に一緒にいたい"
               '"君は僕の太陽")
              '"君は最高の人")))
        (CONCATENATE 'STRING '"君は僕の太陽"
       '"君は僕の太陽" '"君は最高の人"))
         (CONCATENATE 'STRING '"君なしでは生きられない" '"愛しています"
        '"君と過ごす時間が宝物"))
   (LET (CONCATENATE
         (QUOTE
   (LET ((#:RESULT1349 '"幸せをくれてありがとう"))
     (IF (<= (LENGTH #:RESULT1350) 14)
         (CONCATENATE 'STRING #:RESULT1351
        (CONCATENATE 'STRING '"幸せをくれてありがとう"
       '"永遠に一緒にいたい"
       (CONCATENATE 'STRING
             (CONCATENATE
              'STRING
              (CONCATENATE
               'STRING
               '"心から大切に思っている"
               '"君なしでは生きられない")
              '"永遠に一緒にいたい")
             (LET ((#:RESULT1352
             '"君は僕の太陽"))
               (IF (<=
             (LENGTH
              #:RESULT1353)
             13)
            (CONCATENATE
             'STRING
             #:RESULT1354
             (CONCATENATE
              'STRING
              '"永遠に一緒にいたい"
              '"幸せをくれてありがとう"
              '"君なしでは生きられない"))
            #:RESULT1355)))))
         #:RESULT1356)))
         (CONCATENATE
   'STRING
   (CONCATENATE 'STRING
         (LET ((#:RESULT917
         (CONCATENATE 'STRING '"君と過ごす時間が宝物"
        '"愛しています" '"愛しています")))
           (IF (<= (LENGTH #:RESULT918) 13)
        (CONCATENATE 'STRING
       (CONCATENATE 'STRING
             '"幸せをくれてありがとう"
             (CONCATENATE
              'STRING
              (CONCATENATE
               'STRING
               (CONCATENATE
         'STRING
         (CONCATENATE
          'STRING
          '"君なしでは生きられない"
          '"幸せをくれてありがとう")
         (CONCATENATE
          'STRING
          '"幸せをくれてありがとう"
          '"幸せをくれてありがとう"
          '"永遠に一緒にいたい"))
               (CONCATENATE
         'STRING
         (IF (<=
              (LENGTH
               '"永遠に一緒にいたい")
              7)
             (CONCATENATE
              'STRING
              '"君は最高の人"
              '"君は僕の太陽")
             '"君と過ごす時間が宝物")
         (CONCATENATE
          'STRING
          '"君は僕の太陽"
          '"幸せをくれてありがとう")
         (CONCATENATE
          'STRING
          '"君と過ごす時間が宝物"
          '"君は僕の太陽"
          '"愛しています"))
               '"幸せをくれてありがとう")
              (CONCATENATE
               'STRING
               '"心から大切に思っている"
               (LET ((#:RESULT1357
               '"君は僕の太陽"))
          (IF (<=
               (LENGTH
                #:RESULT1358)
               6)
              (CONCATENATE
               'STRING
               #:RESULT1359
               (CONCATENATE
                'STRING
                '"幸せをくれてありがとう"
                '"永遠に一緒にいたい"
                '"永遠に一緒にいたい"))
              #:RESULT1360)))
              '"心から大切に思っている"))
       '"永遠に一緒にいたい")
        (LET ((#:RESULT1361 '"君は僕の太陽"))
          (IF (<= (LENGTH #:RESULT1362) 17)
       (CONCATENATE 'STRING
             #:RESULT1363
             (LET ((#:RESULT1364
             (IF (<=
           (LENGTH
            '"幸せをくれてありがとう")
           7)
          (CONCATENATE
           'STRING
           (CONCATENATE
            'STRING
            (CONCATENATE
             'STRING
             '"心から大切に思っている"
             '"心から大切に思っている"
             '"君と過ごす時間が宝物")
            (CONCATENATE
             'STRING
             '"君は最高の人"
             '"君なしでは生きられない"))
           '"心から大切に思っている")
          '"君なしでは生きられない")))
        (IF (<=
             (LENGTH
              #:RESULT1365)
             18)
            (CONCATENATE
             'STRING
             #:RESULT1366
             '"君は僕の太陽")
            #:RESULT1367)))
       #:RESULT1368))))
         '"愛しています"
         (LET ((#:RESULT921 '"愛しています"))
           (IF (<= (LENGTH #:RESULT922) 18)
        (CONCATENATE
         '(CONCATENATE 'STRING '"君は最高の人"
         '"愛しています"
         (IF (<=
              (LENGTH
        '"君は僕の太陽")
              7)
             (CONCATENATE
              'STRING
              (CONCATENATE
        'STRING
        '"幸せをくれてありがとう"
        (CONCATENATE
         'STRING
         (LET ((#:RESULT1369
         '"心から大切に思っている"))
           (IF (<=
         (LENGTH
          #:RESULT1370)
         15)
               (CONCATENATE
         'STRING
         #:RESULT1371
         '"幸せをくれてありがとう")
               #:RESULT1372))
         (CONCATENATE
          'STRING
          '"愛しています"
          '"愛しています"
          '"幸せをくれてありがとう")))
              (LET ((#:RESULT1373
              (LET ((#:RESULT1374
              '"心から大切に思っている"))
         (IF (<=
              (LENGTH
               #:RESULT1375)
              6)
             (CONCATENATE
              'STRING
              #:RESULT1376
              '"幸せをくれてありがとう")
             #:RESULT1377))))
         (IF (<=
              (LENGTH
               #:RESULT1378)
              19)
             (CONCATENATE
              'STRING
              #:RESULT1379
              '"永遠に一緒にいたい")
             #:RESULT1380)))
             (CONCATENATE
              'STRING
              '"君は最高の人"
              '"君と過ごす時間が宝物")))
         #:RESULT923 '"幸せをくれてありがとう")
        '"愛しています")))
   (CONCATENATE 'STRING
         (CONCATENATE 'STRING
        (LET ((#:RESULT1381
        (IF (<=
             (LENGTH
              (IF (<=
            (LENGTH
             '"君は僕の太陽")
            7)
           (CONCATENATE
            'STRING
            '"君は最高の人"
            '"心から大切に思っている")
           '"君と過ごす時間が宝物"))
             7)
            (CONCATENATE
             'STRING
             '"君と過ごす時間が宝物"
             '"君と過ごす時間が宝物")
            (CONCATENATE
             'STRING
             '"君なしでは生きられない"
             '"愛しています"
             '"心から大切に思っている"))))
          (IF (<=
        (LENGTH #:RESULT1382)
        23)
       (CONCATENATE 'STRING
             #:RESULT1383
             '"君と過ごす時間が宝物")
       #:RESULT1384))
        (IF (<=
             (LENGTH
       (LET ((#:RESULT1385
              (CONCATENATE
        'STRING
        '"永遠に一緒にいたい"
        '"君は僕の太陽"
        '"永遠に一緒にいたい")))
         (IF (<=
              (LENGTH
        #:RESULT1386)
              20)
             (CONCATENATE
              'STRING
              #:RESULT1387
              (CONCATENATE
        'STRING
        '"心から大切に思っている"
        '"愛しています"
        '"永遠に一緒にいたい"))
             #:RESULT1388)))
             7)
            (CONCATENATE 'STRING
           '"君は僕の太陽"
           (CONCATENATE
            'STRING
            '"幸せをくれてありがとう"
            '"君は僕の太陽"
            (IF (<=
          (LENGTH
           '"君なしでは生きられない")
          7)
         (CONCATENATE
          'STRING
          '"君は僕の太陽"
          '"君は僕の太陽")
         '"君は僕の太陽")))
            '"君なしでは生きられない"))
         '"君は僕の太陽")
   (IF (CONCATENATE 'STRING
      (IF (<=
           (LENGTH
            (CONCATENATE 'STRING
           (LET ((#:RESULT1389
           (LET ((#:RESULT1390
           '"君は最高の人"))
             (IF (<=
           (LENGTH
            #:RESULT1391)
           22)
          (CONCATENATE
           'STRING
           #:RESULT1392
           '"心から大切に思っている")
          #:RESULT1393))))
             (IF (<=
           (LENGTH
            #:RESULT1394)
           11)
          (CONCATENATE
           'STRING
           #:RESULT1395
           '"君と過ごす時間が宝物")
          #:RESULT1396))
           (LET ((#:RESULT1397
           (LET ((#:RESULT1398
           '"幸せをくれてありがとう"))
             (IF (<=
           (LENGTH
            #:RESULT1399)
           12)
          (CONCATENATE
           'STRING
           #:RESULT1400
           '"君なしでは生きられない")
          #:RESULT1401))))
             (IF (<=
           (LENGTH
            #:RESULT1402)
           16)
          (CONCATENATE
           'STRING
           #:RESULT1403
           (LET ((#:RESULT1404
           '"君と過ごす時間が宝物"))
             (IF (<=
           (LENGTH
            #:RESULT1405)
           20)
          (CONCATENATE
           'STRING
           #:RESULT1406
           '"君なしでは生きられない")
          #:RESULT1407)))
          #:RESULT1408))
           '"君は最高の人"))
           7)
          (CONCATENATE 'STRING '"永遠に一緒にいたい"
         '"君と過ごす時間が宝物")
          '"君と過ごす時間が宝物")
      '"君は最高の人" '"幸せをくれてありがとう")
       (CONCATENATE 'STRING '"君は僕の太陽"
      (LET (CONCATENATE
            (QUOTE STRING)
            (CONCATENATE
      'STRING
      '"幸せをくれてありがとう"
      (CONCATENATE 'STRING '"君は最高の人"
            (CONCATENATE
             'STRING
             (CONCATENATE
              'STRING
              '"君は僕の太陽"
              '"君は最高の人"
              '"君なしでは生きられない")
             (CONCATENATE
              'STRING
              '"君は最高の人"
              '"君と過ごす時間が宝物"))))
            (CONCATENATE
      'STRING
      (CONCATENATE 'STRING
            '"幸せをくれてありがとう"
            (IF (<=
          (LENGTH
           '"幸せをくれてありがとう")
          7)
         (CONCATENATE
          'STRING
          (CONCATENATE
           'STRING
           '"永遠に一緒にいたい"
           '"永遠に一緒にいたい")
          '"君と過ごす時間が宝物")
         (LET ((#:RESULT1409
         '"幸せをくれてありがとう"))
           (IF (<=
         (LENGTH
          #:RESULT1410)
         7)
               (CONCATENATE
         'STRING
         #:RESULT1411
         '"君なしでは生きられない")
               #:RESULT1412)))
            (IF (<=
          (LENGTH
           '"心から大切に思っている")
          7)
         (CONCATENATE
          'STRING
          (LET ((#:RESULT1413
          '"君なしでは生きられない"))
            (IF (<=
          (LENGTH
           #:RESULT1414)
          23)
         (CONCATENATE
          'STRING
          #:RESULT1415
          '"君は最高の人")
         #:RESULT1416))
          (LET ((#:RESULT1417
          '"君は最高の人"))
            (IF (<=
          (LENGTH
           #:RESULT1418)
          6)
         (CONCATENATE
          'STRING
          #:RESULT1419
          '"君なしでは生きられない")
         #:RESULT1420)))
         (LET ((#:RESULT1421
         '"君は最高の人"))
           (IF (<=
         (LENGTH
          #:RESULT1422)
         19)
               (CONCATENATE
         'STRING
         #:RESULT1423
         '"君なしでは生きられない")
               #:RESULT1424))))
      '"君は僕の太陽"))
        (IF (<= (LENGTH #:RESULT934)
         '"愛しています")
            (CONCATENATE 'STRING #:RESULT935
           (LET ((#:RESULT936
           '"君は僕の太陽"))
             (IF (<=
           (LENGTH
            #:RESULT937)
           15)
          (CONCATENATE
           '(CONCATENATE
             'STRING
             '"君と過ごす時間が宝物"
             (LET ((#:RESULT1425
             '"幸せをくれてありがとう"))
               (IF (<=
             (LENGTH
              #:RESULT1426)
             10)
            (CONCATENATE
             'STRING
             #:RESULT1427
             '"君と過ごす時間が宝物")
            #:RESULT1428)))
           (CONCATENATE
            'STRING
            (CONCATENATE
             'STRING
             (IF (<=
           (LENGTH
            (CONCATENATE
             'STRING
             '"永遠に一緒にいたい"
             (CONCATENATE
              'STRING
              '"君と過ごす時間が宝物"
              '"愛しています")
             '"心から大切に思っている"))
           7)
          (CONCATENATE
           'STRING
           (IF (<=
                (LENGTH
          (CONCATENATE
           'STRING
           '"君と過ごす時間が宝物"
           '"幸せをくれてありがとう"))
                7)
               (CONCATENATE
                'STRING
                '"心から大切に思っている"
                '"永遠に一緒にいたい")
               '"愛しています")
           '"愛しています")
          (CONCATENATE
           'STRING
           '"君は僕の太陽"
           (CONCATENATE
            'STRING
            '"心から大切に思っている"
            '"心から大切に思っている")
           (LET ((#:RESULT1429
           '"心から大切に思っている"))
             (IF (<=
           (LENGTH
            #:RESULT1430)
           12)
          (CONCATENATE
           'STRING
           #:RESULT1431
           '"君と過ごす時間が宝物")
          #:RESULT1432))))
             (CONCATENATE
              'STRING
              '"幸せをくれてありがとう"
              (IF (<=
            (LENGTH
             '"愛しています")
            7)
           (CONCATENATE
            'STRING
            '"君なしでは生きられない"
            '"幸せをくれてありがとう")
           (IF (<=
                (LENGTH
          '"愛しています")
                7)
               (CONCATENATE
                'STRING
                '"永遠に一緒にいたい"
                '"愛しています")
               '"幸せをくれてありがとう")))
             (CONCATENATE
              'STRING
              (IF (<=
            (LENGTH
             (CONCATENATE
              'STRING
              '"心から大切に思っている"
              '"君と過ごす時間が宝物"
              '"幸せをくれてありがとう"))
            7)
           (CONCATENATE
            'STRING
            (CONCATENATE
             'STRING
             '"君は最高の人"
             '"君なしでは生きられない")
            '"君は最高の人")
           (CONCATENATE
            'STRING
            '"幸せをくれてありがとう"
            '"愛しています"))
              (CONCATENATE
               'STRING
               (LET ((#:RESULT1433
               '"愛しています"))
          (IF (<=
               (LENGTH
                #:RESULT1434)
               5)
              (CONCATENATE
               'STRING
               #:RESULT1435
               '"永遠に一緒にいたい")
              #:RESULT1436))
               (IF (<=
             (LENGTH
              '"幸せをくれてありがとう")
             7)
            (CONCATENATE
             'STRING
             '"君と過ごす時間が宝物"
             '"愛しています")
            '"幸せをくれてありがとう"))))
            (CONCATENATE
             'STRING
             (LET ((#:RESULT1437
             '"愛しています"))
               (IF (<=
             (LENGTH
              #:RESULT1438)
             7)
            (CONCATENATE
             'STRING
             #:RESULT1439
             (CONCATENATE
              'STRING
              (IF (<=
            (LENGTH
             '"君は最高の人")
            7)
           (CONCATENATE
            'STRING
            '"君は僕の太陽"
            '"君なしでは生きられない")
           '"君は僕の太陽")
              '"君なしでは生きられない"
              (CONCATENATE
               'STRING
               '"君は最高の人"
               '"幸せをくれてありがとう"
               '"幸せをくれてありがとう")))
            #:RESULT1440))
             '"心から大切に思っている"
             (IF (<=
           (LENGTH
            (IF (<=
          (LENGTH
           (IF (<=
                (LENGTH
                 '"永遠に一緒にいたい")
                7)
               (CONCATENATE
                'STRING
                '"心から大切に思っている"
                '"君は最高の人")
               '"君は最高の人"))
          7)
                (CONCATENATE
          'STRING
          (CONCATENATE
           'STRING
           '"君は最高の人"
           '"君は最高の人")
          (CONCATENATE
           'STRING
           '"愛しています"
           '"心から大切に思っている"
           '"心から大切に思っている"))
                (CONCATENATE
          'STRING
          '"君なしでは生きられない"
          '"永遠に一緒にいたい"
          '"君なしでは生きられない")))
           7)
          (CONCATENATE
           'STRING
           (CONCATENATE
            'STRING
            (LET ((#:RESULT1441
            '"幸せをくれてありがとう"))
              (IF (<=
            (LENGTH
             #:RESULT1442)
            9)
           (CONCATENATE
            'STRING
            #:RESULT1443
            '"永遠に一緒にいたい")
           #:RESULT1444))
            '"君と過ごす時間が宝物"
            (CONCATENATE
             'STRING
             '"永遠に一緒にいたい"
             '"君と過ごす時間が宝物"
             '"永遠に一緒にいたい"))
           '"幸せをくれてありがとう")
          (LET ((#:RESULT1445
          '"愛しています"))
            (IF (<=
          (LENGTH
           #:RESULT1446)
          14)
                (CONCATENATE
          'STRING
          #:RESULT1447
          '"愛しています")
                #:RESULT1448))))
            (CONCATENATE
             'STRING
             (CONCATENATE
              'STRING
              '"君なしでは生きられない"
              '"永遠に一緒にいたい"
              (CONCATENATE
               'STRING
               (CONCATENATE
         'STRING
         '"永遠に一緒にいたい"
         '"永遠に一緒にいたい")
               '"幸せをくれてありがとう"
               (CONCATENATE
         'STRING
         '"幸せをくれてありがとう"
         '"君は僕の太陽")))
             (CONCATENATE
              'STRING
              (IF (<=
            (LENGTH
             '"心から大切に思っている")
            7)
           (CONCATENATE
            'STRING
            '"君なしでは生きられない"
            (CONCATENATE
             'STRING
             '"心から大切に思っている"
             '"君なしでは生きられない"
             '"愛しています"))
           '"心から大切に思っている")
              '"幸せをくれてありがとう")))
           '"幸せをくれてありがとう")
          #:RESULT939)))
            #:RESULT940)))
       (IF (<= (LENGTH '"幸せをくれてありがとう") 7)
    (CONCATENATE 'STRING
          (CONCATENATE 'STRING '"君と過ごす時間が宝物"
         ''"君なしでは生きられない")
          '"心から大切に思っている")
    (CONCATENATE
     '(CONCATENATE 'STRING '"幸せをくれてありがとう"
            (CONCATENATE 'STRING
           (CONCATENATE
            'STRING
            '"永遠に一緒にいたい"
            '"君なしでは生きられない")
           '"永遠に一緒にいたい")
            (LET ((#:RESULT1449
            (CONCATENATE 'STRING
           (CONCATENATE
            'STRING
            '"心から大切に思っている"
            '"幸せをくれてありがとう")
           '"幸せをくれてありがとう"
           (CONCATENATE
            'STRING
            (LET ((#:RESULT1450
            '"君と過ごす時間が宝物"))
              (IF (<=
            (LENGTH
             #:RESULT1451)
            13)
           (CONCATENATE
            'STRING
            #:RESULT1452
            '"君と過ごす時間が宝物")
           #:RESULT1453))
            (CONCATENATE
             'STRING
             '"君は最高の人"
             '"君と過ごす時間が宝物")
            '"君なしでは生きられない"))))
       (IF (<= (LENGTH #:RESULT1454)
        5)
           (CONCATENATE 'STRING
          #:RESULT1455
          (CONCATENATE
           'STRING
           '"心から大切に思っている"
           (IF (<=
         (LENGTH
          '"幸せをくれてありがとう")
         7)
               (CONCATENATE
         'STRING
         (IF (<=
              (LENGTH
               '"君は僕の太陽")
              7)
             (CONCATENATE
              'STRING
              '"愛しています"
              '"君は僕の太陽")
             '"君は僕の太陽")
         (CONCATENATE
          'STRING
          '"君と過ごす時間が宝物"
          '"君と過ごす時間が宝物"))
               (IF (<=
             (LENGTH
              '"君と過ごす時間が宝物")
             7)
            (CONCATENATE
             'STRING
             '"君と過ごす時間が宝物"
             '"心から大切に思っている")
            '"幸せをくれてありがとう"))
           (IF (<=
         (LENGTH
          '"幸せをくれてありがとう")
         7)
               (CONCATENATE
         'STRING
         '"君は僕の太陽"
         (CONCATENATE
          'STRING
          '"心から大切に思っている"
          '"愛しています"))
               '"心から大切に思っている")))
           #:RESULT1456)))
     '(CONCATENATE 'STRING
            (IF (<=
          (LENGTH
           (CONCATENATE 'STRING
          '"君と過ごす時間が宝物"
          (LET ((#:RESULT1457
          '"君は僕の太陽"))
            (IF (<=
          (LENGTH
           #:RESULT1458)
          7)
         (CONCATENATE
          'STRING
          #:RESULT1459
          (CONCATENATE
           'STRING
           '"君と過ごす時間が宝物"
           '"君は僕の太陽"))
         #:RESULT1460))
          (CONCATENATE
           'STRING
           (CONCATENATE
            'STRING
            '"永遠に一緒にいたい"
            '"幸せをくれてありがとう")
           (LET ((#:RESULT1461
           '"君は最高の人"))
             (IF (<=
           (LENGTH
            #:RESULT1462)
           16)
          (CONCATENATE
           'STRING
           #:RESULT1463
           '"君なしでは生きられない")
          #:RESULT1464))
           (CONCATENATE
            'STRING
            '"君と過ごす時間が宝物"
            '"心から大切に思っている"))))
          7)
         (CONCATENATE 'STRING
        (CONCATENATE
         'STRING
         (IF (<=
              (LENGTH
               '"心から大切に思っている")
              7)
             (CONCATENATE
              'STRING
              '"君なしでは生きられない"
              '"君なしでは生きられない")
             '"心から大切に思っている")
         (CONCATENATE
          'STRING
          (IF (<=
               (LENGTH
         '"幸せをくれてありがとう")
               7)
              (CONCATENATE
               'STRING
               '"永遠に一緒にいたい"
               '"心から大切に思っている")
              '"君と過ごす時間が宝物")
          (CONCATENATE
           'STRING
           '"幸せをくれてありがとう"
           '"永遠に一緒にいたい"
           '"君は最高の人")
          (IF (<=
               (LENGTH
         '"君と過ごす時間が宝物")
               7)
              (CONCATENATE
               'STRING
               '"愛しています"
               '"永遠に一緒にいたい")
              '"愛しています"))
         '"幸せをくれてありがとう")
        (CONCATENATE
         'STRING
         (LET ((#:RESULT1465
         '"永遠に一緒にいたい"))
           (IF (<=
         (LENGTH
          #:RESULT1466)
         6)
               (CONCATENATE
         'STRING
         #:RESULT1467
         (LET ((#:RESULT1468
                '"君と過ごす時間が宝物"))
           (IF (<=
                (LENGTH
          #:RESULT1469)
                12)
               (CONCATENATE
                'STRING
                #:RESULT1470
                '"心から大切に思っている")
               #:RESULT1471)))
               #:RESULT1472))
         '"君は僕の太陽"
         (IF (<=
              (LENGTH
               (CONCATENATE
         'STRING
         '"君と過ごす時間が宝物"
         '"君なしでは生きられない"
         '"君は僕の太陽"))
              7)
             (CONCATENATE
              'STRING
              '"君と過ごす時間が宝物"
              (CONCATENATE
               'STRING
               '"君は僕の太陽"
               '"永遠に一緒にいたい"
               '"幸せをくれてありがとう"))
             '"君なしでは生きられない")))
         (IF (<=
       (LENGTH '"永遠に一緒にいたい")
       7)
             (CONCATENATE 'STRING
            '"君は僕の太陽"
            (CONCATENATE
             'STRING
             (IF (<=
           (LENGTH
            '"君は僕の太陽")
           7)
          (CONCATENATE
           'STRING
           '"永遠に一緒にいたい"
           '"幸せをくれてありがとう")
          '"君なしでは生きられない")
             (LET ((#:RESULT1473
             '"君は僕の太陽"))
               (IF (<=
             (LENGTH
              #:RESULT1474)
             17)
            (CONCATENATE
             'STRING
             #:RESULT1475
             '"君は僕の太陽")
            #:RESULT1476))))
             '"愛しています"))
            (CONCATENATE 'STRING
           '"君なしでは生きられない"
           (LET ((#:RESULT1477
           (LET ((#:RESULT1478
           (CONCATENATE
            'STRING
            '"君は僕の太陽"
            '"君は僕の太陽"
            '"永遠に一緒にいたい")))
             (IF (<=
           (LENGTH
            #:RESULT1479)
           21)
          (CONCATENATE
           'STRING
           #:RESULT1480
           (CONCATENATE
            'STRING
            '"君は最高の人"
            '"愛しています"))
          #:RESULT1481))))
             (IF (<=
           (LENGTH
            #:RESULT1482)
           20)
          (CONCATENATE
           'STRING
           #:RESULT1483
           '"幸せをくれてありがとう")
          #:RESULT1484))
           (LET ((#:RESULT1485
           (LET ((#:RESULT1486
           '"愛しています"))
             (IF (<=
           (LENGTH
            #:RESULT1487)
           19)
          (CONCATENATE
           'STRING
           #:RESULT1488
           (IF (<=
                (LENGTH
          '"君と過ごす時間が宝物")
                7)
               (CONCATENATE
                'STRING
                '"幸せをくれてありがとう"
                '"永遠に一緒にいたい")
               '"君なしでは生きられない"))
          #:RESULT1489))))
             (IF (<=
           (LENGTH
            #:RESULT1490)
           8)
          (CONCATENATE
           'STRING
           #:RESULT1491
           (IF (<=
         (LENGTH
          (LET ((#:RESULT1492
          '"君は最高の人"))
            (IF (<=
          (LENGTH
           #:RESULT1493)
          14)
                (CONCATENATE
          'STRING
          #:RESULT1494
          '"君と過ごす時間が宝物")
                #:RESULT1495)))
         7)
               (CONCATENATE
         'STRING
         (CONCATENATE
          'STRING
          '"君と過ごす時間が宝物"
          '"永遠に一緒にいたい")
         (IF (<=
              (LENGTH
               '"君は僕の太陽")
              7)
             (CONCATENATE
              'STRING
              '"永遠に一緒にいたい"
              '"君と過ごす時間が宝物")
             '"永遠に一緒にいたい"))
               (LET ((#:RESULT1496
               '"愛しています"))
          (IF (<=
               (LENGTH
                #:RESULT1497)
               20)
              (CONCATENATE
               'STRING
               #:RESULT1498
               '"君は僕の太陽")
              #:RESULT1499))))
          #:RESULT1500))))
     '"君なしでは生きられない" '"君なしでは生きられない"))))
         (QUOTE "君と過ごす時間が宝物"))
     (CONCATENATE 'STRING '"君は最高の人" '"幸せをくれてありがとう"
    (CONCATENATE 'STRING
          (CONCATENATE 'STRING '"君は最高の人"
         (LET ((#:RESULT1501
         '"永遠に一緒にいたい"))
           (IF (<=
         (LENGTH
          #:RESULT1502)
         6)
        (CONCATENATE
         'STRING
         #:RESULT1503
         (IF (<=
              (LENGTH
               (IF (<=
             (LENGTH
              '"愛しています")
             7)
            (CONCATENATE
             'STRING
             '"心から大切に思っている"
             '"心から大切に思っている")
            '"君なしでは生きられない"))
              7)
             (CONCATENATE
              'STRING
              (LET ((#:RESULT1504
              '"君と過ごす時間が宝物"))
         (IF (<=
              (LENGTH
               #:RESULT1505)
              11)
             (CONCATENATE
              'STRING
              #:RESULT1506
              '"君なしでは生きられない")
             #:RESULT1507))
              (LET ((#:RESULT1508
              '"愛しています"))
         (IF (<=
              (LENGTH
               #:RESULT1509)
              21)
             (CONCATENATE
              'STRING
              #:RESULT1510
              '"心から大切に思っている")
             #:RESULT1511)))
             '"幸せをくれてありがとう"))
        #:RESULT1512))
         '"心から大切に思っている")
          '"君なしでは生きられない"
          (CONCATENATE 'STRING
         (CONCATENATE 'STRING
               (IF (<=
             (LENGTH
              (CONCATENATE
               'STRING
               '"幸せをくれてありがとう"
               '"幸せをくれてありがとう"
               '"永遠に一緒にいたい"))
             7)
            (CONCATENATE
             'STRING
             '"幸せをくれてありがとう"
             '"愛しています")
            (IF (<=
          (LENGTH
           '"君は僕の太陽")
          7)
                (CONCATENATE
          'STRING
          '"幸せをくれてありがとう"
          '"愛しています")
                '"心から大切に思っている"))
               '"心から大切に思っている"
               (CONCATENATE
         'STRING
         '"心から大切に思っている"
         (CONCATENATE
          'STRING
          '"心から大切に思っている"
          '"君と過ごす時間が宝物"
          '"幸せをくれてありがとう")))
         (CONCATENATE 'STRING
               '"君は最高の人"
               (CONCATENATE
         'STRING
         (LET ((#:RESULT1513
                '"君と過ごす時間が宝物"))
           (IF (<=
                (LENGTH
          #:RESULT1514)
                9)
               (CONCATENATE
                'STRING
                #:RESULT1515
                '"幸せをくれてありがとう")
               #:RESULT1516))
         (LET ((#:RESULT1517
                '"心から大切に思っている"))
           (IF (<=
                (LENGTH
          #:RESULT1518)
                17)
               (CONCATENATE
                'STRING
                #:RESULT1519
                '"君は僕の太陽")
               #:RESULT1520))
         (IF (<=
              (LENGTH
               '"君と過ごす時間が宝物")
              7)
             (CONCATENATE
              'STRING
              '"君は最高の人"
              '"君は最高の人")
             '"君なしでは生きられない"))
               (IF (<=
             (LENGTH
              '"君は最高の人")
             7)
            (CONCATENATE
             'STRING
             '"幸せをくれてありがとう"
             '"幸せをくれてありがとう")
            (CONCATENATE
             'STRING
             '"永遠に一緒にいたい"
             '"君は最高の人")))))))))

Score:   0 | Letter: Error: 不正な結果型 (Length: 13)
Program: ''"君は僕の太陽"

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"


Generation 10:
Score:   5 | Letter: 幸せをくれてありがとう (Length: 11)
Program: '"幸せをくれてありがとう"

Score:   0 | Letter: Error: 不正な結果型 (Length: 13)
Program: ''"愛しています"

Score:   0 | Letter: Error: bad thing to be a type specifier: "永遠に一緒にいたい" (Length: 52)
Program: (CONCATENATE '"永遠に一緒にいたい" '"君なしでは生きられない" '"君は最高の人")

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   5 | Letter: 幸せをくれてありがとう (Length: 11)
Program: '"幸せをくれてありがとう"

Score:   0 | Letter: Error: The variable #:RESULT4111 is unbound. (Length: 44)
Program: (CONCATENATE 'STRING '"永遠に一緒にいたい"
        (CONCATENATE 'STRING
       (LET ((#:RESULT4109
       (LET ((#:RESULT4110
       (CONCATENATE 'STRING
             '"心から大切に思っている"
             '"君は僕の太陽"
             '"心から大切に思っている")))
         (IF (<= (LENGTH #:RESULT4111) 15)
      (CONCATENATE 'STRING
            #:RESULT4112
            (CONCATENATE
             'STRING
             '"君と過ごす時間が宝物"
             '"君なしでは生きられない"))
      #:RESULT4113))))
         (IF (<= (LENGTH #:RESULT4114) 15)
      (CONCATENATE 'STRING #:RESULT4115
            '"君は僕の太陽")
      #:RESULT4116))
       '"君は最高の人"))

Score:  85 | Letter: 君なしでは生きられない君と過ごす時間が宝物君は僕の太陽 (Length: 27)
Program: (CONCATENATE 'STRING '"君なしでは生きられない" '"君と過ごす時間が宝物" '"君は僕の太陽")

Score:  35 | Letter: 君なしでは生きられない君は最高の人 (Length: 17)
Program: (CONCATENATE 'STRING '"君なしでは生きられない" '"君は最高の人")

Generation 20:
Score:  55 | Letter: 君なしでは生きられない君と過ごす時間が宝物 (Length: 21)
Program: (CONCATENATE 'STRING '"君なしでは生きられない" '"君と過ごす時間が宝物")

Score:   5 | Letter: 幸せをくれてありがとう (Length: 11)
Program: '"幸せをくれてありがとう"

Score:   0 | Letter: Error: 不正な結果型 (Length: 13)
Program: '(CONCATENATE 'STRING
         (LET ((#:RESULT9865 '"幸せをくれてありがとう"))
    (IF (<= (LENGTH #:RESULT9866) 24)
        (CONCATENATE 'STRING #:RESULT9867
       (LET ((#:RESULT9868 '"君は最高の人"))
         (IF (<= (LENGTH #:RESULT9869) 23)
      (CONCATENATE 'STRING
            #:RESULT9870
            '"心から大切に思っている")
      #:RESULT9871)))
        #:RESULT9872))
         (CONCATENATE 'STRING '"心から大切に思っている" '"愛しています")
         '"心から大切に思っている")

Score:   0 | Letter: Error: The variable #:RESULT9714 is unbound. (Length: 44)
Program: (IF (CONCATENATE 'STRING '"愛しています"
     (IF (<= (LENGTH '"君と過ごす時間が宝物") 7)
         (CONCATENATE 'STRING
        (LET ((#:RESULT9709 '"君は最高の人"))
          (IF (<= (LENGTH #:RESULT9710) 24)
       (CONCATENATE 'STRING
             #:RESULT9711
             '"君と過ごす時間が宝物")
       #:RESULT9712))
        '"心から大切に思っている")
         (CONCATENATE 'STRING
        (IF (<=
      (LENGTH
       (CONCATENATE 'STRING
             '"幸せをくれてありがとう"
             '"君なしでは生きられない"))
      7)
            (CONCATENATE 'STRING '"君は最高の人"
           '"君は最高の人")
            (CONCATENATE 'STRING
           '"君なしでは生きられない"
           '"幸せをくれてありがとう"
           '"永遠に一緒にいたい"))
        (CONCATENATE 'STRING '"君は最高の人"
       '"愛しています")
        (CONCATENATE 'STRING
       (LET ((#:RESULT9713
              '"愛しています"))
         (IF (<=
              (LENGTH
        #:RESULT9714)
              5)
             (CONCATENATE
              'STRING
              #:RESULT9715
              '"幸せをくれてありがとう")
             #:RESULT9716))
       (LET ((#:RESULT9717
              '"君は僕の太陽"))
         (IF (<=
              (LENGTH
        #:RESULT9718)
              12)
             (CONCATENATE
              'STRING
              #:RESULT9719
              '"心から大切に思っている")
             #:RESULT9720))))))
      (CONCATENATE 'STRING
     (CONCATENATE 'STRING
           (CONCATENATE 'STRING
          (LET ((#:RESULT6481
          '"君と過ごす時間が宝物"))
            '"君と過ごす時間が宝物")
          (CONCATENATE 'STRING
         '"君と過ごす時間が宝物"
         ''"君と過ごす時間が宝物"
         '"幸せをくれてありがとう"))
           ''"愛しています" '"心から大切に思っている")
     (CONCATENATE ''"君は僕の太陽" '"愛しています"
           (CONCATENATE
     '(CONCATENATE 'STRING
            (IF (<=
          (LENGTH '"君は最高の人")
          7)
         (CONCATENATE 'STRING
               (LET ((#:RESULT9721
               '"君なしでは生きられない"))
          (IF (<=
               (LENGTH
                #:RESULT9722)
               7)
              (CONCATENATE
               'STRING
               #:RESULT9723
               '"愛しています")
              #:RESULT9724))
               (LET ((#:RESULT9725
               '"君なしでは生きられない"))
          (IF (<=
               (LENGTH
                #:RESULT9726)
               15)
              (CONCATENATE
               'STRING
               #:RESULT9727
               (IF (<=
             (LENGTH
              (IF (<=
            (LENGTH
             '"君と過ごす時間が宝物")
            7)
           (CONCATENATE
            'STRING
            '"君と過ごす時間が宝物"
            '"永遠に一緒にいたい")
           '"君は最高の人"))
             7)
            (CONCATENATE
             'STRING
             '"永遠に一緒にいたい"
             (CONCATENATE
              'STRING
              '"君なしでは生きられない"
              '"永遠に一緒にいたい"))
            (CONCATENATE
             'STRING
             '"幸せをくれてありがとう"
             '"君は最高の人"
             '"愛しています")))
              #:RESULT9728)))
         (LET ((#:RESULT9729
         '"君と過ごす時間が宝物"))
           (IF (<=
         (LENGTH
          #:RESULT9730)
         12)
        (CONCATENATE
         'STRING
         #:RESULT9731
         '"君は僕の太陽")
        #:RESULT9732)))
            '"君と過ごす時間が宝物"
            (IF (<=
          (LENGTH
           (IF (<=
         (LENGTH
          '"君は最高の人")
         7)
        (CONCATENATE
         'STRING
         (CONCATENATE
          'STRING
          '"君は最高の人"
          (LET ((#:RESULT9733
          '"君と過ごす時間が宝物"))
            (IF (<=
          (LENGTH
           #:RESULT9734)
          15)
         (CONCATENATE
          'STRING
          #:RESULT9735
          '"幸せをくれてありがとう")
         #:RESULT9736)))
         (CONCATENATE
          'STRING
          '"幸せをくれてありがとう"
          '"君は最高の人"
          '"幸せをくれてありがとう"))
        (CONCATENATE
         'STRING
         (LET ((#:RESULT9737
         '"君は最高の人"))
           (IF (<=
         (LENGTH
          #:RESULT9738)
         10)
               (CONCATENATE
         'STRING
         #:RESULT9739
         '"愛しています")
               #:RESULT9740))
         '"君は僕の太陽"
         (LET ((#:RESULT9741
         '"君なしでは生きられない"))
           (IF (<=
         (LENGTH
          #:RESULT9742)
         15)
               (CONCATENATE
         'STRING
         #:RESULT9743
         '"愛しています")
               #:RESULT9744)))))
          7)
         (CONCATENATE 'STRING
               (CONCATENATE
         'STRING
         (IF (<=
              (LENGTH
               '"心から大切に思っている")
              7)
             (CONCATENATE
              'STRING
              (LET ((#:RESULT9745
              '"心から大切に思っている"))
                (IF (<=
              (LENGTH
               #:RESULT9746)
              23)
             (CONCATENATE
              'STRING
              #:RESULT9747
              '"愛しています")
             #:RESULT9748))
              '"心から大切に思っている")
             (LET ((#:RESULT9749
             '"君は僕の太陽"))
               (IF (<=
             (LENGTH
              #:RESULT9750)
             7)
            (CONCATENATE
             'STRING
             #:RESULT9751
             '"君と過ごす時間が宝物")
            #:RESULT9752)))
         (IF (<=
              (LENGTH
               '"心から大切に思っている")
              7)
             (CONCATENATE
              'STRING
              '"幸せをくれてありがとう"
              '"君なしでは生きられない")
             (CONCATENATE
              'STRING
              '"君と過ごす時間が宝物"
              '"幸せをくれてありがとう")))
               '"心から大切に思っている")
         '"君と過ごす時間が宝物"))
     (IF (CONCATENATE 'STRING '"君は最高の人"
        (IF (<=
             (LENGTH
              (CONCATENATE
        'STRING
        '"君は僕の太陽"
        '"愛しています"))
             7)
            (CONCATENATE
             'STRING
             (IF (<=
           (LENGTH
            (CONCATENATE
             'STRING
             (CONCATENATE
              'STRING
              '"君なしでは生きられない"
              '"心から大切に思っている"
              '"愛しています")
             (CONCATENATE
              'STRING
              '"心から大切に思っている"
              '"永遠に一緒にいたい"
              '"君なしでは生きられない")
             '"心から大切に思っている"))
           7)
          (CONCATENATE
           'STRING
           (IF (<=
         (LENGTH
          (IF (<=
               (LENGTH
                '"永遠に一緒にいたい")
               7)
              (CONCATENATE
               (CONCATENATE
                'STRING
                (CONCATENATE
          'STRING
          '"君は最高の人"
          '"君なしでは生きられない"
          (CONCATENATE
           'STRING
           (CONCATENATE
            'STRING
            '"君は僕の太陽"
            '"君は僕の太陽")
           '"愛しています"))
                (CONCATENATE
          'STRING
          (LET ((#:RESULT9753
                 (CONCATENATE
           'STRING
           (LET ((#:RESULT9754
                  '"君と過ごす時間が宝物"))
             (IF (<=
                  (LENGTH
            #:RESULT9755)
                  24)
                 (CONCATENATE
                  'STRING
                  #:RESULT9756
                  '"君なしでは生きられない")
                 #:RESULT9757))
           '"幸せをくれてありがとう")))
            (IF (<=
                 (LENGTH
           #:RESULT9758)
                 16)
                (CONCATENATE
                 'STRING
                 #:RESULT9759
                 (LET ((#:RESULT9760
                 (CONCATENATE
                  'STRING
                  '"君は最高の人"
                  '"君は僕の太陽"
                  '"君と過ごす時間が宝物")))
            (IF (<=
                 (LENGTH
                  #:RESULT9761)
                 11)
                (CONCATENATE
                 'STRING
                 #:RESULT9762
                 '"君なしでは生きられない")
                #:RESULT9763)))
                #:RESULT9764))
          '"君なしでは生きられない"))
               ''"心から大切に思っている"
               '"愛しています")
              '"永遠に一緒にいたい"))
         7)
               '"君なしでは生きられない"
               (CONCATENATE
         'STRING
         '"君は最高の人"
         (LET ((#:RESULT9765
                (CONCATENATE
          'STRING
          (IF (<=
               (LENGTH
                (IF (<=
              (LENGTH
               '"永遠に一緒にいたい")
              7)
             (CONCATENATE
              'STRING
              '"君なしでは生きられない"
              (LET ((#:RESULT9766
              '"君は最高の人"))
                (IF (<=
              (LENGTH
               #:RESULT9767)
              23)
             (CONCATENATE
              'STRING
              #:RESULT9768
              '"君は僕の太陽")
             #:RESULT9769)))
             '"心から大切に思っている"))
               7)
              (CONCATENATE
               'STRING
               (IF (<=
             (LENGTH
              (CONCATENATE
               'STRING
               '"愛しています"
               '"君なしでは生きられない"
               '"永遠に一緒にいたい"))
             7)
            (CONCATENATE
             'STRING
             '"君と過ごす時間が宝物"
             (IF (<=
                  (LENGTH
            '"君は最高の人")
                  7)
                 (CONCATENATE
                  'STRING
                  '"君は最高の人"
                  '"幸せをくれてありがとう")
                 '"心から大切に思っている"))
            '"君と過ごす時間が宝物")
               (IF (<=
             (LENGTH
              '"永遠に一緒にいたい")
             7)
            (CONCATENATE
             'STRING
             '"心から大切に思っている"
             '"君なしでは生きられない")
            '"君と過ごす時間が宝物"))
              (CONCATENATE
               'STRING
               '"君は僕の太陽"
               (CONCATENATE
                'STRING
                '"永遠に一緒にいたい"
                '"君は最高の人"
                '"君なしでは生きられない")
               (CONCATENATE
                'STRING
                '"幸せをくれてありがとう"
                '"愛しています")))
          '"君なしでは生きられない")))
           (IF (<=
                (LENGTH
          #:RESULT9770)
                13)
               (CONCATENATE
                'STRING
                #:RESULT9771
                (IF (<=
              (LENGTH
               (CONCATENATE
                'STRING
                '"心から大切に思っている"
                '"心から大切に思っている"
                '"愛しています"))
              7)
             (CONCATENATE
              'STRING
              '"君は最高の人"
              (LET ((#:RESULT9772
              (LET ((#:RESULT9773
              '"君は僕の太陽"))
                (IF (<=
              (LENGTH
               #:RESULT9774)
              11)
             (CONCATENATE
              'STRING
              #:RESULT9775
              '"心から大切に思っている")
             #:RESULT9776))))
                (IF (<=
              (LENGTH
               #:RESULT9777)
              6)
             (CONCATENATE
              'STRING
              #:RESULT9778
              (CONCATENATE
               'STRING
               '"心から大切に思っている"
               '"君と過ごす時間が宝物"))
             #:RESULT9779)))
             '"心から大切に思っている"))
               #:RESULT9780))))
           (CONCATENATE
            '(LET ((#:RESULT9781
             (LET ((#:RESULT9782
             (CONCATENATE
              'STRING
              (CONCATENATE
               'STRING
               (LET ((#:RESULT9783
               '"君は最高の人"))
                 (IF (<=
               (LENGTH
                #:RESULT9784)
               16)
              (CONCATENATE
               'STRING
               #:RESULT9785
               '"永遠に一緒にいたい")
              #:RESULT9786))
               '"永遠に一緒にいたい")
              (CONCATENATE
               'STRING
               (IF (<=
             (LENGTH
              '"愛しています")
             7)
            (CONCATENATE
             'STRING
             '"心から大切に思っている"
             '"心から大切に思っている")
            '"永遠に一緒にいたい")
               (LET ((#:RESULT9787
               '"君は最高の人"))
                 (IF (<=
               (LENGTH
                #:RESULT9788)
               19)
              (CONCATENATE
               'STRING
               #:RESULT9789
               '"愛しています")
              #:RESULT9790)))
              '"君は僕の太陽")))
               (IF (<=
             (LENGTH
              #:RESULT9791)
             19)
            (CONCATENATE
             'STRING
             #:RESULT9792
             (IF (<=
           (LENGTH
            (IF (<=
                 (LENGTH
                  '"君と過ごす時間が宝物")
                 7)
                (CONCATENATE
                 'STRING
                 (IF (<=
               (LENGTH
                '"愛しています")
               7)
              (CONCATENATE
               'STRING
               '"君なしでは生きられない"
               '"君なしでは生きられない")
              '"君は僕の太陽")
                 (IF (<=
               (LENGTH
                '"幸せをくれてありがとう")
               7)
              (CONCATENATE
               'STRING
               '"心から大切に思っている"
               '"幸せをくれてありがとう")
              '"永遠に一緒にいたい"))
                (CONCATENATE
                 'STRING
                 '"君は最高の人"
                 '"君と過ごす時間が宝物"
                 '"君は最高の人")))
           7)
                 (CONCATENATE
           'STRING
           '"君と過ごす時間が宝物"
           '"心から大切に思っている")
                 (IF (<=
               (LENGTH
                (CONCATENATE
                 'STRING
                 '"幸せをくれてありがとう"
                 '"幸せをくれてありがとう"
                 '"君なしでは生きられない"))
               7)
              (CONCATENATE
               'STRING
               (LET ((#:RESULT9793
               '"君は最高の人"))
                 (IF (<=
               (LENGTH
                #:RESULT9794)
               10)
              (CONCATENATE
               'STRING
               #:RESULT9795
               '"君なしでは生きられない")
              #:RESULT9796))
               (LET ((#:RESULT9797
               '"君と過ごす時間が宝物"))
                 (IF (<=
               (LENGTH
                #:RESULT9798)
               15)
              (CONCATENATE
               'STRING
               #:RESULT9799
               '"君は僕の太陽")
              #:RESULT9800)))
              '"永遠に一緒にいたい")))
            #:RESULT9801))))
               (IF (<=
             (LENGTH
              #:RESULT9802)
             8)
            (CONCATENATE
             'STRING
             #:RESULT9803
             '"君は最高の人")
            #:RESULT9804))
            '"心から大切に思っている"
            (CONCATENATE
             'STRING
             '"君は僕の太陽"
             '"君は最高の人"
             '"幸せをくれてありがとう")
            '"君と過ごす時間が宝物"))
          (LET ((#:RESULT7805
          '"愛しています"))
            (IF (<=
          (LENGTH
           #:RESULT7806)
          15)
         (CONCATENATE
          'STRING
          #:RESULT7807
          '"君は最高の人")
         '"君なしでは生きられない")))
             '"愛しています")
            '"永遠に一緒にいたい"))
         (CONCATENATE 'STRING
        (IF (<=
             (IF (<=
           (LENGTH
            (IF (<=
          (LENGTH
           (CONCATENATE
            'STRING
            '"君は最高の人"
            '"愛しています"))
          7)
         (CONCATENATE
          'STRING
          (CONCATENATE
           'STRING
           (LET ((#:RESULT9805
           (IF (<=
                (LENGTH
                 '"幸せをくれてありがとう")
                7)
               (CONCATENATE
                'STRING
                '"愛しています"
                '"君と過ごす時間が宝物")
               '"君と過ごす時間が宝物")))
             (IF (<=
           (LENGTH
            #:RESULT9806)
           12)
          (CONCATENATE
           'STRING
           #:RESULT9807
           (CONCATENATE
            'STRING
            '"永遠に一緒にいたい"
            '"君と過ごす時間が宝物"
            '"愛しています"))
          #:RESULT9808))
           '"君なしでは生きられない"
           '"幸せをくれてありがとう")
          '"幸せをくれてありがとう")
         (CONCATENATE
          'STRING
          (CONCATENATE
           'STRING
           '"永遠に一緒にいたい"
           '"幸せをくれてありがとう"
           (CONCATENATE
            'STRING
            '"心から大切に思っている"
            '"君は最高の人"
            '"心から大切に思っている"))
          (LET ((#:RESULT9809
          '"君と過ごす時間が宝物"))
            (IF (<=
          (LENGTH
           #:RESULT9810)
          8)
                (CONCATENATE
          'STRING
          #:RESULT9811
          (CONCATENATE
           'STRING
           '"心から大切に思っている"
           '"心から大切に思っている"
           '"愛しています"))
                #:RESULT9812)))))
           7)
          (CONCATENATE
           'STRING
           '"幸せをくれてありがとう"
           (CONCATENATE
            'STRING
            (CONCATENATE
             'STRING
             (IF (<=
           (LENGTH
            '"永遠に一緒にいたい")
           7)
          (CONCATENATE
           'STRING
           '"愛しています"
           (CONCATENATE
            'STRING
            '"君は僕の太陽"
            '"永遠に一緒にいたい"))
          (IF (<=
               (LENGTH
                '"君は最高の人")
               7)
              (CONCATENATE
               'STRING
               '"心から大切に思っている"
               '"愛しています")
              '"君と過ごす時間が宝物"))
             (LET ((#:RESULT9813
             (IF (<=
           (LENGTH
            '"幸せをくれてありがとう")
           7)
          (CONCATENATE
           'STRING
           '"君なしでは生きられない"
           '"永遠に一緒にいたい")
          '"永遠に一緒にいたい")))
               (IF (<=
             (LENGTH
              #:RESULT9814)
             10)
            (CONCATENATE
             'STRING
             #:RESULT9815
             (LET ((#:RESULT9816
             '"君は最高の人"))
               (IF (<=
             (LENGTH
              #:RESULT9817)
             17)
            (CONCATENATE
             'STRING
             #:RESULT9818
             '"君と過ごす時間が宝物")
            #:RESULT9819)))
            #:RESULT9820))
             '"心から大切に思っている")
            '"心から大切に思っている"
            '"永遠に一緒にいたい"))
          (CONCATENATE
           'STRING
           (CONCATENATE
            'STRING
            (CONCATENATE
             'STRING
             (IF (<=
           (LENGTH
            '"永遠に一緒にいたい")
           7)
          (CONCATENATE
           'STRING
           '"永遠に一緒にいたい"
           '"幸せをくれてありがとう")
          '"永遠に一緒にいたい")
             '"愛しています")
            '"君は僕の太陽"
            '"君と過ごす時間が宝物")
           (CONCATENATE
            'STRING
            '"幸せをくれてありがとう"
            (LET ((#:RESULT9821
            (CONCATENATE
             'STRING
             '"幸せをくれてありがとう"
             '"心から大切に思っている"
             '"君と過ごす時間が宝物")))
              (IF (<=
            (LENGTH
             #:RESULT9822)
            19)
           (CONCATENATE
            'STRING
            #:RESULT9823
            (CONCATENATE
             'STRING
             '"永遠に一緒にいたい"
             '"愛しています"))
           #:RESULT9824))
            (LET ((#:RESULT9825
            (CONCATENATE
             'STRING
             '"君と過ごす時間が宝物"
             '"幸せをくれてありがとう"
             '"君は僕の太陽")))
              (IF (<=
            (LENGTH
             #:RESULT9826)
            23)
           (CONCATENATE
            'STRING
            #:RESULT9827
            (CONCATENATE
             'STRING
             '"心から大切に思っている"
             '"君と過ごす時間が宝物"
             '"心から大切に思っている"))
           #:RESULT9828)))))
             (CONCATENATE
              'STRING
              (CONCATENATE
        'STRING
        (IF (<=
             (LENGTH
              (CONCATENATE
               'STRING
               (LET ((#:RESULT9829
               '"幸せをくれてありがとう"))
          (IF (<=
               (LENGTH
                #:RESULT9830)
               18)
              (CONCATENATE
               'STRING
               #:RESULT9831
               '"心から大切に思っている")
              #:RESULT9832))
               (CONCATENATE
         'STRING
         '"心から大切に思っている"
         '"君と過ごす時間が宝物")
               (LET ((#:RESULT9833
               '"永遠に一緒にいたい"))
          (IF (<=
               (LENGTH
                #:RESULT9834)
               17)
              (CONCATENATE
               'STRING
               #:RESULT9835
               '"幸せをくれてありがとう")
              #:RESULT9836))))
             7)
            (CONCATENATE
             'STRING
             '"幸せをくれてありがとう"
             '"君は僕の太陽")
            '"君は最高の人")
        (IF (<=
             (LENGTH
              (CONCATENATE
               'STRING
               '"幸せをくれてありがとう"
               (CONCATENATE
         'STRING
         '"幸せをくれてありがとう"
         '"幸せをくれてありがとう"
         '"君は僕の太陽")))
             7)
            (CONCATENATE
             'STRING
             '"永遠に一緒にいたい"
             '"君なしでは生きられない")
            (LET ((#:RESULT9837
            (IF (<=
          (LENGTH
           '"君なしでは生きられない")
          7)
                (CONCATENATE
          'STRING
          '"君なしでは生きられない"
          '"君は僕の太陽")
                '"幸せをくれてありがとう")))
              (IF (<=
            (LENGTH
             #:RESULT9838)
            14)
           (CONCATENATE
            'STRING
            #:RESULT9839
            (CONCATENATE
             'STRING
             '"永遠に一緒にいたい"
             '"愛しています"
             '"愛しています"))
           #:RESULT9840)))
        '"永遠に一緒にいたい")
              '"君は僕の太陽"))
            (CONCATENATE
             'STRING '"愛しています"
             '"君と過ごす時間が宝物")
            '"幸せをくれてありがとう")
        '"君は最高の人")
         '"心から大切に思っている")
     '"君は僕の太陽"
     (IF (<= (LENGTH '"心から大切に思っている") 7)
         (CONCATENATE ''"君なしでは生きられない"
        (CONCATENATE 'STRING
              '"心から大切に思っている"
              '"君は最高の人"
              '"永遠に一緒にいたい")
        (LET ((#:RESULT5929
        '"君は僕の太陽"))
          (IF (CONCATENATE
        'STRING
        '"君は最高の人"
        '"愛しています")
              (CONCATENATE
        ''"君なしでは生きられない"
        (CONCATENATE
         'STRING
         (LET ((#:RESULT9841
         '"君は僕の太陽"))
           (IF (<=
         (LENGTH
          #:RESULT9842)
         6)
               (CONCATENATE
         'STRING
         #:RESULT9843
         '"永遠に一緒にいたい")
               #:RESULT9844))
         (CONCATENATE
          'STRING
          (CONCATENATE
           'STRING
           (CONCATENATE
            'STRING
            (LET ((#:RESULT9845
            '"永遠に一緒にいたい"))
              (IF (<=
            (LENGTH
             #:RESULT9846)
            7)
           (CONCATENATE
            'STRING
            #:RESULT9847
            '"君は最高の人")
           #:RESULT9848))
            (CONCATENATE
             'STRING
             '"心から大切に思っている"
             '"幸せをくれてありがとう")
            '"君は僕の太陽")
           (CONCATENATE
            'STRING
            (LET ((#:RESULT9849
            '"君なしでは生きられない"))
              (IF (<=
            (LENGTH
             #:RESULT9850)
            14)
           (CONCATENATE
            'STRING
            #:RESULT9851
            '"君は最高の人")
           #:RESULT9852))
            (CONCATENATE
             'STRING
             '"心から大切に思っている"
             '"愛しています"))
           '"君なしでは生きられない")
          (IF (<=
               (LENGTH
         (IF (<=
              (LENGTH
               (LET ((#:RESULT9853
               '"愛しています"))
          (IF (<=
               (LENGTH
                #:RESULT9854)
               22)
              (CONCATENATE
               'STRING
               #:RESULT9855
               '"君なしでは生きられない")
              #:RESULT9856)))
              7)
             (CONCATENATE
              'STRING
              (IF (<=
            (LENGTH
             '"幸せをくれてありがとう")
            7)
           (CONCATENATE
            'STRING
            '"君なしでは生きられない"
            '"君は僕の太陽")
           '"幸せをくれてありがとう")
              '"永遠に一緒にいたい")
             '"君なしでは生きられない"))
               7)
              (CONCATENATE
               'STRING
               '"君と過ごす時間が宝物"
               (CONCATENATE
         'STRING
         (CONCATENATE
          'STRING
          '"愛しています"
          '"君は僕の太陽"
          '"君と過ごす時間が宝物")
         (LET ((#:RESULT9857
                '"永遠に一緒にいたい"))
           (IF (<=
                (LENGTH
          #:RESULT9858)
                16)
               (CONCATENATE
                'STRING
                #:RESULT9859
                '"幸せをくれてありがとう")
               #:RESULT9860))))
              '"君は最高の人")))
        '"君と過ごす時間が宝物")
              (LET (QUOTE
             "君なしでは生きられない")
         (IF (<=
              (LENGTH
               #:RESULT7838)
              14)
             (CONCATENATE
              'STRING
              #:RESULT7839
              '"君と過ごす時間が宝物")
             (LET ((#:RESULT9861
             '"永遠に一緒にいたい"))
               (IF (<=
             (LENGTH
              #:RESULT9862)
             12)
            (CONCATENATE
             'STRING
             #:RESULT9863
             '"君は僕の太陽")
            #:RESULT9864)))))))
         '"君は僕の太陽"))
           '"君は最高の人"))
      '"幸せをくれてありがとう")

Score:   0 | Letter: 君は最高の人 (Length: 6)
Program: '"君は最高の人"


Generation 30:
Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:   0 | Letter: Error: The variable #:RESULT19275 is unbound. (Length: 45)
Program: (CONCATENATE 'STRING
        (LET ((#:RESULT19273
        (LET ((#:RESULT19274
        (CONCATENATE 'STRING
       (CONCATENATE 'STRING '"君は最高の人"
             '"君と過ごす時間が宝物"
             '"永遠に一緒にいたい")
       '"心から大切に思っている")))
          (IF (<= (LENGTH #:RESULT19275) 23)
       (CONCATENATE 'STRING #:RESULT19276
      (CONCATENATE 'STRING
            '"心から大切に思っている"
            '"愛しています"))
       #:RESULT19277))))
   (IF (<= (LENGTH #:RESULT19278) 23)
       (CONCATENATE 'STRING #:RESULT19279 '"君と過ごす時間が宝物")
       #:RESULT19280))
        (LET ((#:RESULT19281
        (CONCATENATE 'STRING '"君は僕の太陽"
       (LET ((#:RESULT19282 '"幸せをくれてありがとう"))
         (IF (<= (LENGTH #:RESULT19283) 9)
      (CONCATENATE 'STRING
            #:RESULT19284
            (IF (<=
          (LENGTH
           '"君は僕の太陽")
          7)
         (CONCATENATE
          'STRING
          '"永遠に一緒にいたい"
          '"愛しています")
         '"君と過ごす時間が宝物"))
      #:RESULT19285))
       '"君なしでは生きられない")))
   (IF (<= (LENGTH #:RESULT19286) 7)
       (CONCATENATE 'STRING #:RESULT19287 '"君は僕の太陽")
       #:RESULT19288))
        '"君は最高の人")

Score:   0 | Letter: Error: 不正な結果型 (Length: 13)
Program: '(IF (<=
        (LENGTH
  (IF (<= (LENGTH '"永遠に一緒にいたい") 7)
      (CONCATENATE 'STRING '"君と過ごす時間が宝物" '"君と過ごす時間が宝物")
      '"君は僕の太陽"))
        7)
       (CONCATENATE 'STRING
      (LET ((#:RESULT19229
      (CONCATENATE 'STRING '"君は僕の太陽"
            (LET ((#:RESULT19230
            '"君と過ごす時間が宝物"))
       (IF (<= (LENGTH #:RESULT19231)
        19)
           (CONCATENATE 'STRING
          #:RESULT19232
          '"幸せをくれてありがとう")
           #:RESULT19233)))))
        (IF (<= (LENGTH #:RESULT19234) 11)
     (CONCATENATE 'STRING #:RESULT19235
           (LET ((#:RESULT19236
           '"君なしでは生きられない"))
      (IF (<= (LENGTH #:RESULT19237)
       12)
          (CONCATENATE 'STRING
         #:RESULT19238
         (IF (<=
              (LENGTH
               '"君と過ごす時間が宝物")
              7)
             (CONCATENATE
              'STRING
              '"心から大切に思っている"
              '"幸せをくれてありがとう")
             '"君は僕の太陽"))
          #:RESULT19239)))
     #:RESULT19240))
      (LET ((#:RESULT19241 '"君と過ごす時間が宝物"))
        (IF (<= (LENGTH #:RESULT19242) 22)
     (CONCATENATE 'STRING #:RESULT19243
           (CONCATENATE 'STRING
          (LET ((#:RESULT19244
          (CONCATENATE
           'STRING
           '"心から大切に思っている"
           '"愛しています")))
            (IF (<=
          (LENGTH
           #:RESULT19245)
          15)
         (CONCATENATE
          'STRING
          #:RESULT19246
          (LET ((#:RESULT19247
          '"君と過ごす時間が宝物"))
            (IF (<=
          (LENGTH
           #:RESULT19248)
          6)
         (CONCATENATE
          'STRING
          #:RESULT19249
          '"愛しています")
         #:RESULT19250)))
         #:RESULT19251))
          (IF (<=
        (LENGTH
         '"愛しています")
        7)
              (CONCATENATE
        'STRING
        (IF (<=
             (LENGTH
              '"君と過ごす時間が宝物")
             7)
            (CONCATENATE
             'STRING
             '"幸せをくれてありがとう"
             '"心から大切に思っている")
            '"幸せをくれてありがとう")
        '"心から大切に思っている")
              (CONCATENATE
        'STRING
        '"君と過ごす時間が宝物"
        '"君と過ごす時間が宝物"))
          '"心から大切に思っている"))
     #:RESULT19252)))
       (LET ((#:RESULT19253
       (IF (<=
     (LENGTH
      (LET ((#:RESULT19254
      (CONCATENATE 'STRING '"永遠に一緒にいたい" '"愛しています"
            '"心から大切に思っている")))
        (IF (<= (LENGTH #:RESULT19255) 13)
     (CONCATENATE 'STRING #:RESULT19256
           '"心から大切に思っている")
     #:RESULT19257)))
     7)
    (CONCATENATE 'STRING '"永遠に一緒にいたい"
          (IF (<=
        (LENGTH
         (LET ((#:RESULT19258 '"君は最高の人"))
           (IF (<= (LENGTH #:RESULT19259) 8)
        (CONCATENATE 'STRING
              #:RESULT19260
              '"君は僕の太陽")
        #:RESULT19261)))
        7)
       (CONCATENATE 'STRING
             (LET ((#:RESULT19262
             '"君は最高の人"))
        (IF (<=
             (LENGTH
              #:RESULT19263)
             10)
            (CONCATENATE
             'STRING
             #:RESULT19264
             '"君と過ごす時間が宝物")
            #:RESULT19265))
             (CONCATENATE 'STRING
            '"愛しています"
            '"永遠に一緒にいたい"
            '"君と過ごす時間が宝物"))
       (CONCATENATE 'STRING '"君なしでは生きられない"
             '"君なしでは生きられない"
             '"君は最高の人")))
    (LET ((#:RESULT19266
    (CONCATENATE 'STRING '"君は僕の太陽" '"君は僕の太陽")))
      (IF (<= (LENGTH #:RESULT19267) 14)
          (CONCATENATE 'STRING #:RESULT19268
         (CONCATENATE 'STRING '"幸せをくれてありがとう"
        '"君は僕の太陽"))
          #:RESULT19269)))))
  (IF (<= (LENGTH #:RESULT19270) 20)
      (CONCATENATE 'STRING #:RESULT19271 '"君なしでは生きられない")
      #:RESULT19272)))

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:   0 | Letter: Error: The variable #:RESULT19222 is unbound. (Length: 45)
Program: (CONCATENATE 'STRING
        (CONCATENATE 'STRING '"幸せをくれてありがとう"
       (LET ((#:RESULT19221 '"君と過ごす時間が宝物"))
         (IF (<= (LENGTH #:RESULT19222) 17)
      (CONCATENATE 'STRING #:RESULT19223
            (CONCATENATE 'STRING
           '"永遠に一緒にいたい"
           '"幸せをくれてありがとう"
           (CONCATENATE
            'STRING
            '"君なしでは生きられない"
            '"君と過ごす時間が宝物")))
      #:RESULT19224)))
        (LET ((#:RESULT19225 '"心から大切に思っている"))
   (IF (<= (LENGTH #:RESULT19226) 21)
       (CONCATENATE 'STRING #:RESULT19227
      (CONCATENATE 'STRING '"君は最高の人"
            '"君なしでは生きられない"))
       #:RESULT19228)))

Score:   0 | Letter: Error: 不正な結果型 (Length: 13)
Program: ''"心から大切に思っている"

Generation 40:
Score:   5 | Letter: 幸せをくれてありがとう (Length: 11)
Program: '"幸せをくれてありがとう"

Score:   0 | Letter: Error: 不正な結果型 (Length: 13)
Program: '(LET ((#:RESULT21345 '"幸せをくれてありがとう"))
     (IF (<= (LENGTH #:RESULT21346) 21)
  (CONCATENATE 'STRING #:RESULT21347
        (CONCATENATE 'STRING
       (LET ((#:RESULT21348 '"心から大切に思っている"))
         (IF (<= (LENGTH #:RESULT21349) 16)
      (CONCATENATE 'STRING
            #:RESULT21350
            '"君と過ごす時間が宝物")
      #:RESULT21351))
       (CONCATENATE 'STRING
             (IF (<=
           (LENGTH
            (CONCATENATE
             'STRING
             '"君なしでは生きられない"
             '"君は僕の太陽"))
           7)
          (CONCATENATE 'STRING
         (CONCATENATE
          'STRING
          '"君と過ごす時間が宝物"
          '"君は僕の太陽"
          '"君と過ごす時間が宝物")
         (LET ((#:RESULT21352
                '"心から大切に思っている"))
           (IF (<=
                (LENGTH
          #:RESULT21353)
                7)
               (CONCATENATE
                'STRING
                #:RESULT21354
                '"君なしでは生きられない")
               #:RESULT21355)))
          (IF (<=
        (LENGTH
         '"君なしでは生きられない")
        7)
              (CONCATENATE
        'STRING
        '"君は僕の太陽"
        '"君は僕の太陽")
              '"君は最高の人"))
             (IF (<=
           (LENGTH
            '"心から大切に思っている")
           7)
          (CONCATENATE 'STRING
         '"君は最高の人"
         (CONCATENATE
          'STRING
          '"愛しています"
          '"永遠に一緒にいたい"
          '"永遠に一緒にいたい"))
          (CONCATENATE 'STRING
         '"永遠に一緒にいたい"
         '"君は僕の太陽"
         '"心から大切に思っている"))
             (IF (<=
           (LENGTH
            (IF (<=
          (LENGTH
           '"心から大切に思っている")
          7)
         (CONCATENATE
          'STRING
          '"君は僕の太陽"
          '"心から大切に思っている")
         '"君は最高の人"))
           7)
          (CONCATENATE 'STRING
         (CONCATENATE
          'STRING
          '"永遠に一緒にいたい"
          '"君は最高の人"
          '"心から大切に思っている")
         (LET ((#:RESULT21356
                '"永遠に一緒にいたい"))
           (IF (<=
                (LENGTH
          #:RESULT21357)
                24)
               (CONCATENATE
                'STRING
                #:RESULT21358
                '"心から大切に思っている")
               #:RESULT21359)))
          '"幸せをくれてありがとう"))
       '"永遠に一緒にいたい"))
  #:RESULT21360))

Score:   0 | Letter: Error: The variable #:RESULT21338 is unbound. (Length: 45)
Program: (CONCATENATE 'STRING '"君は僕の太陽"
        (IF (<=
      (LENGTH
       (CONCATENATE 'STRING '"幸せをくれてありがとう" '"君は最高の人"))
      7)
     (CONCATENATE 'STRING '"幸せをくれてありがとう" '"君なしでは生きられない")
     (CONCATENATE 'STRING
           (IF (<=
         (LENGTH
          (CONCATENATE 'STRING '"君と過ごす時間が宝物"
         '"幸せをくれてありがとう"
         '"永遠に一緒にいたい"))
         7)
        (CONCATENATE 'STRING
       (LET ((#:RESULT21333
              '"愛しています"))
         (IF (<=
              (LENGTH
        #:RESULT21334)
              20)
             (CONCATENATE
              'STRING
              #:RESULT21335
              '"君と過ごす時間が宝物")
             #:RESULT21336))
       (CONCATENATE 'STRING
             '"君は最高の人"
             '"永遠に一緒にいたい"))
        '"君と過ごす時間が宝物")
           '"愛しています" '"君は最高の人"))
        (CONCATENATE 'STRING
       (CONCATENATE 'STRING '"君は最高の人"
      (CONCATENATE 'STRING
            (IF (<=
          (LENGTH
           '"幸せをくれてありがとう")
          7)
         (CONCATENATE
          'STRING
          '"君なしでは生きられない"
          '"心から大切に思っている")
         '"愛しています")
            (CONCATENATE
             'STRING '"愛しています"
             '"心から大切に思っている"
             '"永遠に一緒にいたい")
            '"君は最高の人"))
       (CONCATENATE 'STRING '"君なしでは生きられない"
      (LET ((#:RESULT21337
             (CONCATENATE 'STRING
            '"君なしでは生きられない"
            '"君は最高の人"
            '"永遠に一緒にいたい")))
        (IF (<=
             (LENGTH #:RESULT21338)
             24)
            (CONCATENATE 'STRING
           #:RESULT21339
           '"君と過ごす時間が宝物")
            #:RESULT21340))
      '"君は最高の人")
       (CONCATENATE 'STRING '"君と過ごす時間が宝物"
      (CONCATENATE 'STRING
            '"心から大切に思っている"
            (LET ((#:RESULT21341
            '"愛しています"))
              (IF (<=
            (LENGTH
             #:RESULT21342)
            15)
           (CONCATENATE
            'STRING
            #:RESULT21343
            '"愛しています")
           #:RESULT21344))))))

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:  95 | Letter: 永遠に一緒にいたい永遠に一緒にいたい心から大切に思っている (Length: 29)
Program: (CONCATENATE 'STRING '"永遠に一緒にいたい" '"永遠に一緒にいたい" '"心から大切に思っている")

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:  90 | Letter: 幸せをくれてありがとう幸せをくれてありがとう君は僕の太陽 (Length: 28)
Program: (CONCATENATE 'STRING '"幸せをくれてありがとう" '"幸せをくれてありがとう" '"君は僕の太陽")

Score:  95 | Letter: 永遠に一緒にいたい永遠に一緒にいたい心から大切に思っている (Length: 29)
Program: (CONCATENATE 'STRING '"永遠に一緒にいたい" '"永遠に一緒にいたい" '"心から大切に思っている")

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   0 | Letter: Error: bad thing to be a type specifier: "永遠に一緒にいたい" (Length: 52)
Program: (CONCATENATE '"永遠に一緒にいたい" '"永遠に一緒にいたい" '"君と過ごす時間が宝物" '"幸せをくれてありがとう")

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"


Generation 50:
Score:   0 | Letter: Error: "君と過ごす時間が宝物" fell through ETYPECASE expression.
       Wanted one of (NUMBER CONS SYMBOL). (Length: 97)
Program: (CONCATENATE ''"君と過ごす時間が宝物" '"君と過ごす時間が宝物" '"君と過ごす時間が宝物" '"君と過ごす時間が宝物")

Score:   0 | Letter: Error: The variable #:RESULT24402 is unbound. (Length: 45)
Program: (IF (<= (LENGTH '"君なしでは生きられない") 7)
      (CONCATENATE 'STRING '"永遠に一緒にいたい" '"君は僕の太陽")
      (CONCATENATE 'STRING '"愛しています"
     (LET ((#:RESULT24401 '"幸せをくれてありがとう"))
       (IF (<= (LENGTH #:RESULT24402) 9)
    (CONCATENATE 'STRING #:RESULT24403
          (CONCATENATE 'STRING
         (CONCATENATE 'STRING
               '"永遠に一緒にいたい"
               '"幸せをくれてありがとう"
               '"心から大切に思っている")
         '"君は最高の人"
         '"永遠に一緒にいたい"))
    #:RESULT24404))))

Score:   0 | Letter: Error: The variable #:RESULT24374 is unbound. (Length: 45)
Program: (LET ((#:RESULT24373
  (CONCATENATE 'STRING '"愛しています"
        (CONCATENATE 'STRING '"君なしでは生きられない"
       (IF (<= (LENGTH '"君は最高の人") 7)
           (CONCATENATE 'STRING '"永遠に一緒にいたい"
          '"君と過ごす時間が宝物")
           '"君と過ごす時間が宝物")
       '"君と過ごす時間が宝物")
        '"心から大切に思っている")))
    (IF (<= (LENGTH #:RESULT24374) 5)
        (CONCATENATE 'STRING #:RESULT24375
       (IF (<=
     (LENGTH
      (LET ((#:RESULT24376 '"心から大切に思っている"))
        (IF (<= (LENGTH #:RESULT24377) 9)
     (CONCATENATE 'STRING #:RESULT24378
           (CONCATENATE 'STRING
          (IF (<=
               (LENGTH
         '"幸せをくれてありがとう")
               7)
              (CONCATENATE
               'STRING
               '"永遠に一緒にいたい"
               '"永遠に一緒にいたい")
              '"愛しています")
          (LET ((#:RESULT24379
          '"永遠に一緒にいたい"))
            (IF (<=
          (LENGTH
           #:RESULT24380)
          11)
         (CONCATENATE
          'STRING
          #:RESULT24381
          '"愛しています")
         #:RESULT24382))))
     #:RESULT24383)))
     7)
    (CONCATENATE 'STRING
          (IF (<= (LENGTH '"愛しています") 7)
       (CONCATENATE 'STRING
             (CONCATENATE
              'STRING
              (IF (<=
            (LENGTH
             '"幸せをくれてありがとう")
            7)
           (CONCATENATE
            'STRING
            '"君は最高の人"
            '"永遠に一緒にいたい")
           '"君と過ごす時間が宝物")
              '"幸せをくれてありがとう")
             (CONCATENATE
              'STRING
              '"君は僕の太陽"
              (CONCATENATE
        'STRING
        '"君は僕の太陽"
        '"愛しています"
        '"愛しています")
              '"愛しています"))
       (LET ((#:RESULT24384
       '"幸せをくれてありがとう"))
         (IF (<=
       (LENGTH #:RESULT24385)
       15)
             (CONCATENATE 'STRING
            #:RESULT24386
            (CONCATENATE
             'STRING
             '"永遠に一緒にいたい"
             '"君と過ごす時間が宝物"
             '"幸せをくれてありがとう"))
             #:RESULT24387)))
          (LET ((#:RESULT24388
          (LET ((#:RESULT24389
          (CONCATENATE 'STRING
         '"永遠に一緒にいたい"
         '"永遠に一緒にいたい"
         '"君は最高の人")))
            (IF (<=
          (LENGTH
           #:RESULT24390)
          12)
         (CONCATENATE 'STRING
               #:RESULT24391
               '"君なしでは生きられない")
         #:RESULT24392))))
            (IF (<= (LENGTH #:RESULT24393)
             20)
         (CONCATENATE 'STRING
        #:RESULT24394
        (CONCATENATE
         'STRING
         '"永遠に一緒にいたい"
         '"君は最高の人"))
         #:RESULT24395)))
    (CONCATENATE 'STRING '"君は最高の人"
          (CONCATENATE 'STRING
         (CONCATENATE 'STRING
               '"君は僕の太陽"
               '"君は最高の人"
               '"永遠に一緒にいたい")
         (LET ((#:RESULT24396
         '"君と過ごす時間が宝物"))
           (IF (<=
         (LENGTH
          #:RESULT24397)
         20)
        (CONCATENATE
         'STRING
         #:RESULT24398
         '"君なしでは生きられない")
        #:RESULT24399))))))
        #:RESULT24400))

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   5 | Letter: 君なしでは生きられない (Length: 11)
Program: '"君なしでは生きられない"

Score:   0 | Letter: Error: The variable #:RESULT24366 is unbound. (Length: 45)
Program: (IF (<= (LENGTH '"君なしでは生きられない") 7)
      (CONCATENATE 'STRING
     (LET ((#:RESULT24353
     (LET ((#:RESULT24354 '"君なしでは生きられない"))
       (IF (<= (LENGTH #:RESULT24355) 23)
           (CONCATENATE 'STRING #:RESULT24356
          (CONCATENATE 'STRING
         (LET ((#:RESULT24357
         '"君は僕の太陽"))
           (IF (<=
         (LENGTH
          #:RESULT24358)
         9)
               (CONCATENATE
         'STRING
         #:RESULT24359
         '"君と過ごす時間が宝物")
               #:RESULT24360))
         (CONCATENATE
          'STRING
          '"幸せをくれてありがとう"
          '"君は僕の太陽")
         '"幸せをくれてありがとう"))
           #:RESULT24361))))
       (IF (<= (LENGTH #:RESULT24362) 16)
    (CONCATENATE 'STRING #:RESULT24363 '"君は最高の人")
    #:RESULT24364))
     '"幸せをくれてありがとう")
      (LET ((#:RESULT24365 '"幸せをくれてありがとう"))
        (IF (<= (LENGTH #:RESULT24366) 24)
     (CONCATENATE 'STRING #:RESULT24367
    (IF (<= (LENGTH '"君は僕の太陽") 7)
        (CONCATENATE 'STRING
       (IF (<=
            (LENGTH
             (IF (<=
           (LENGTH
            '"君なしでは生きられない")
           7)
          (CONCATENATE 'STRING
         '"幸せをくれてありがとう"
         '"君は僕の太陽")
          '"君は最高の人"))
            7)
           (CONCATENATE 'STRING
          '"永遠に一緒にいたい"
          (CONCATENATE
           'STRING
           '"幸せをくれてありがとう"
           '"君と過ごす時間が宝物"))
           (LET ((#:RESULT24368
           '"永遠に一緒にいたい"))
             (IF (<=
           (LENGTH
            #:RESULT24369)
           14)
          (CONCATENATE 'STRING
         #:RESULT24370
         '"君と過ごす時間が宝物")
          #:RESULT24371)))
       '"永遠に一緒にいたい")
        '"君は僕の太陽"))
     #:RESULT24372)))

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   0 | Letter: Error: The value
  CONCATENATE
       is not of type
  CHARACTER
       when setting an element of (ARRAY CHARACTER) (Length: 130)
Program: (CONCATENATE 'STRING
        '(CONCATENATE 'STRING '"心から大切に思っている" '"君なしでは生きられない"
        '"心から大切に思っている")
        '"君と過ごす時間が宝物" '"君と過ごす時間が宝物")

Score:   0 | Letter: Error: The variable #:RESULT24339 is unbound. (Length: 45)
Program: (CONCATENATE 'STRING
        (LET ((#:RESULT24333
        (IF (<=
      (LENGTH
       (IF (<=
     (LENGTH
      (CONCATENATE 'STRING '"君と過ごす時間が宝物"
            '"心から大切に思っている"
            '"幸せをくれてありがとう"))
     7)
           (CONCATENATE 'STRING '"君は僕の太陽"
          '"君と過ごす時間が宝物")
           (IF (<= (LENGTH '"愛しています") 7)
        (CONCATENATE 'STRING '"君なしでは生きられない"
       '"永遠に一緒にいたい")
        '"君は最高の人")))
      7)
     (CONCATENATE 'STRING
           (CONCATENATE 'STRING
          (CONCATENATE 'STRING
         '"君は最高の人"
         '"幸せをくれてありがとう")
          '"幸せをくれてありがとう"
          '"幸せをくれてありがとう")
           (LET ((#:RESULT24334
           (IF (<=
         (LENGTH
          '"幸せをくれてありがとう")
         7)
        (CONCATENATE 'STRING
              '"君は最高の人"
              '"愛しています")
        '"君は僕の太陽")))
      (IF (<= (LENGTH #:RESULT24335)
       13)
          (CONCATENATE 'STRING
         #:RESULT24336
         '"心から大切に思っている")
          #:RESULT24337)))
     (IF (<=
          (LENGTH
           (CONCATENATE 'STRING '"幸せをくれてありがとう"
          '"幸せをくれてありがとう" '"愛しています"))
          7)
         (CONCATENATE 'STRING '"君と過ごす時間が宝物"
        (CONCATENATE 'STRING
              '"君と過ごす時間が宝物"
              '"君なしでは生きられない"))
         (LET ((#:RESULT24338 '"心から大切に思っている"))
           (IF (<= (LENGTH #:RESULT24339) 19)
        (CONCATENATE 'STRING #:RESULT24340
       '"永遠に一緒にいたい")
        #:RESULT24341))))))
   (IF (<= (LENGTH #:RESULT24342) 9)
       (CONCATENATE 'STRING #:RESULT24343
      (CONCATENATE 'STRING '"愛しています"
            (IF (<=
          (LENGTH
           (IF (<=
         (LENGTH
          '"君なしでは生きられない")
         7)
        (CONCATENATE
         'STRING
         '"心から大切に思っている"
         '"君なしでは生きられない")
        '"愛しています"))
          7)
         (CONCATENATE 'STRING
               (IF (<=
             (LENGTH
              '"君は僕の太陽")
             7)
            (CONCATENATE
             'STRING
             '"幸せをくれてありがとう"
             '"君なしでは生きられない")
            '"永遠に一緒にいたい")
               '"君なしでは生きられない")
         '"君は最高の人")))
       #:RESULT24344))
        '"幸せをくれてありがとう"
        (LET ((#:RESULT24345
        (LET ((#:RESULT24346 '"心から大切に思っている"))
          (IF (<= (LENGTH #:RESULT24347) 14)
       (CONCATENATE 'STRING #:RESULT24348
      '"君は僕の太陽")
       #:RESULT24349))))
   (IF (<= (LENGTH #:RESULT24350) 11)
       (CONCATENATE 'STRING #:RESULT24351 '"永遠に一緒にいたい")
       #:RESULT24352)))

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   5 | Letter: 幸せをくれてありがとう (Length: 11)
Program: '"幸せをくれてありがとう"

Score: 100 | Letter: 君と過ごす時間が宝物君と過ごす時間が宝物君と過ごす時間が宝物 (Length: 30)
Program: (CONCATENATE 'STRING '"君と過ごす時間が宝物" '"君と過ごす時間が宝物" '"君と過ごす時間が宝物")

Score:   0 | Letter: 愛しています (Length: 6)
Program: '"愛しています"

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"

Score:   5 | Letter: 幸せをくれてありがとう (Length: 11)
Program: '"幸せをくれてありがとう"

Score:   5 | Letter: 心から大切に思っている (Length: 11)
Program: '"心から大切に思っている"