On Sat, 30 Aug 2003 11:50:34 +0900
Hiroshi Shinohara <hshinoh@...> さんwrote:
> 辞書 tableには、例えば key:"abc" に対応した 値として、ソートして小文字化すると
> "abc"となる単語を登録します。 そういう単語は複数ある可能性がありますので、
> key:"abc"に対応する 値は listとして、その中に 順次追加していきます。
> それでは困るのですが、Iconには、存在しない(&null)かどうかを判定する仕掛け
> があります。
この部分で、リストに追加しようとしている値が、既にリストに含まれている
かどうかの判定が必要ではと一般的に考えてしまったのですが、この例では必ず
異なる値が入るという前提があるという理解で良いでしょうか。
> \T_dic["abc"] は、存在すれば key:"abc"に対応する T_dicの値を、
> 存在しなければ、&fail(エラー状態)となり、
> ランタイムエラーにはなりません。
>
> (key:"abc"が無い状態)で、
> put(T_dic["abc"],word)は、ランタイムエラーを発生しますが、
> put(\T_dic[["abc"],word)は、ランタイムエラーを発生せず failして、
> 値は、&failとなります。
>
> put(\T_dic[s_word],word) | (T_dic[s_word] := [word]) としておくと
> "|"の左辺が &failとなった場合は、右辺の式が生きてきますので、
> (T_dic[s_word] := [word])が実行されます。
>
> 補足説明になりましたでしょうか?
こちらのほうは十分に頭に入っていなかったので、良く理解できました。あり
がとうございました。
藤岡 和夫
FGALTS@...
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/