作者: 藤岡和夫
日時: 2003/8/30(21:12)
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/