2016-04-06 9 views
0

を取得Iは、構造とシンボルテーブルを持っていますパラメータ)をシンボルテーブルのkeyに関連付けられた最初の値に設定します。プロローグ:Iキー(最初のパラメータ)を受信して​​、値を結合述語get_symbol/2、(その第二の書き込みたい</p> <pre><code>key → [value | R] </code></pre> <p>:シンボル述語

誰でもこの問題を解決できますか?どうもありがとうございました。

+1

どのように組み合わせますか?そして、あなたは述語の引数がない(組み合わせを返す)のではないか? –

+0

親愛なる@PauloMoura、私は第二引数が組み合わせ引数になると思います。ありがとう! –

+0

2番目のパラメータに値が含まれている場合は、その組み合わせも含めることはできません。 3番目のパラメータが必要です。また、 'R'とは何ですか? – lurker

答えて

1

シンボルテーブルの実際の表現は記述されていません。シンボルテーブルは、その後の事実だろうsym_table(Key, Value).、のは事実の集合となり論理的な表現を想定してみましょう:

sym_table(key1, [val1_1, val1_2, ...]). 
sym_table(key2, [val2_1, val2_2, ...]). 
... 

そして、指定されたキーの最初の値を取得し、あなたのget_symbol/2述語は、次のようになります。

予想通り、この述語は、失敗し(及びIは、所望の推測)こと
get_symbol(Key, Value) :- 
    sym_table(Key, [Value | _]). 

注、(1)Keyは、シンボルテーブルに存在しない、または(2)Keyはない値を有していない(それがsym_table(Key, []).として表される場合データベース内で)。

+0

親愛なる@lurker、ありがとうございました! –

+0

@LeKimTrang私は助けてくれてうれしいです。私があなたの質問に答えたなら、おそらくあなたは私の答えを受け入れる(チェックマークをクリックする)ように親切にすることができ、そして/または答えを "有益"としてupvoteすることができます。ありがとう。 – lurker

+0

ok、ありがとう! –

関連する問題