私は、セットを使用せずにメモリにリストを保持することに問題がありました!セットを使用せずにリストを更新する! - スキーム
私は、定義された最初の空のリストを持っている
(define database (list))
は、私は、パスワードが正しく、リストにペアを追加するかどうかを確認するこの手順を持っています。
(define (set-pass l)
(if (pair? l)
(if (check-pass (second (last l)))
(add-to-list l)
"password does not meet policy requirements"
)
"invalid input"
)
)
し、[追加ツーリスト手順:
(define (add-to-list l)
;(append database l)
;implement this.
)
問題は、私は、この手順を複数回呼び出す必要があり、次のとおりです。
(set-pass '('john '(X p c F z C b Y h 1 2 3 4 : :)))
(set-pass '('john '(X p c F z C b Y : 1 2 3 4 : :)))
(set-pass '('john '(X p c F z C b : : 1 2 3 4 : :)))
私は追加・ツー・プロシージャを実装私はset-passを一度(上記のように追加して)呼び出しているようなリストですが、複数回呼び出すと実装する方法を見つけることができませんでした。私はhere、here、hereと言ったいくつかのことを試しました。しかし私は私が望むものを達成できませんでした。だから私はこれをどのようにすることができますか?
プロシージャ内でリストをカプセル化しても、ある時点で 'set! 'を使用してリストを再割り当てする必要があります。いずれか、またはそれを必要とする関数にパラメータとして変更されたリストを渡し続ける。 –