Ngrams プログラムに取り組んでいますが、ハッシュ テーブルの入力に問題があります。単語を取得してハッシュテーブルに追加する再帰関数を書きたいと思います。データセット 1 2 3 4 5 6 7 が与えられた場合の動作方法は、ハッシュテーブルの最初のエントリのキーが [1 2] で、データが 3 である必要があります。2 番目のエントリは [2 3] のようになります。 ] であり、そのデータは 4 であり、テキスト ファイルの最後まで続く必要があります。
テキストから 1 単語を返すだけの readword という事前定義された関数が与えられます。しかし、これらの呼び出しを互いにオーバーラップさせる方法がわかりません。データがハードコードされている場合、呼び出しは次のようになります。
(hash-set! (list "1" "2") 3
(hash-set! (list "2" "3") 4
私が試した2つの呼び出しは次のようになります
(hash-set! Ngram-table(list((word1) (word2)) readword in)))
(hash-set! Ngram-table(append((cdr data) word1)) readword in)
どうやら in の後の readword は、これが出力などではなく入力であることをコンピューターに伝えることになっているようです。
ハッシュテーブルのキーのデータをこのようにオーバーラップさせるには、これをどのように呼び出しますか? そして、再帰呼び出しはどのように見えるでしょうか?
編集: また、このプログラムで割り当てステートメントを使用することは許可されていません。