英文が頭の中に浮かぶようになりたい。

英語話せないです。簡単な単語にだけ習熟してしまえば子どもみたいなかんじででも英語がはなせないのかなー?とおもいます。で、例えば語彙(知っている単語数)が同等でも、英語圏の子どものひととのちがいは何かな?と考えてみると、話すときに頭の中に「こう言ったら良い」というような構造を瞬時に認識できるかのような気がします。(ここでいう構造というのは英文法とかとは異なる。もっと感覚的でてきとーなもの。ただし、もっと認識の速度が早いもの)

ケブンリッジとか「英語->日本語 (しばらく時間を置く) 日本語 -> 英語」とか何かできそうな気がするのだけれど…。

  1. 種となる文章を単語ごとに分解
  2. 単語のリスト(順番はランダム)を表示
  3. 整形した文章を入力する

というような作業を繰り返せば良いのかな?関係代名詞とかめんどうなの無しで。長くて7単語以内くらいのもの。でも、入力作業というのが結構めんどくさい。合っているか入力結果を判定するときにtypoでミスとかやる気がガクッと下がってしまう。

ゆるい文字列比較

けっきょく、単語のはじめとおわりの文字さえあっていれば良いような文字列比較が便利かもしれない。こんな感じのユルさを認める文字列比較。

(use srfi-1)
(use gauche.experimental.lamb)

(define (understandable? xs ys)
  (every (^ (x y) (and (char-ci=? (string-ref x 0) (string-ref y 0))
                       (char-ci=? (string-ref x (- (string-length x) 1))
                                (string-ref y (- (string-length y) 1)))))
         (string-split xs #/\s+/)
         (string-split ys #/\s+/)))

(understandable? "good morning" "good morning") ; => #t
(understandable? "good mnronig" "good morning") ; => #t
(understandable? "gd mg" "good morning") ; => #t