作者: Hiroshi Shinohara
日時: 2002/5/06(12:58)
 風つかいです。
 機械伯爵さん、どうもです。

 Iconは、未だ開発元のアリゾナ大学でサポートされています。
 それとは別に、Iconの拡張版のUniconという言語が、Icon開発にたづさわった
メンバーで開発中ですが、未だベータ版の状態です。
 Iconのライセンスは、古き良き時代の PDS(pubulic domain software)
ですが、Uniconのライセンスは、GPLになるみたいです。

> 大体、:=で代入するタイプの言語は、代入は文なのに、ICONは値を持つ
>式ですから、そこらへんも不思議なんですが・・・

 Icon版2の
 while sum +:= numeric(("0" ~== read()))
 の方が、特徴が出ているかと思います。
 これは、whileループの中に、文字列の比較式が含まれるものですが、
  "0" ~== read() は、
  ・比較式が成功(不一致)すれば、
   右辺値(読み込んだ値)になる。
  ・比較式は失敗(一致)すると、
   値は &fail(失敗値とでもいいましょうか)。
 という式です。比較式も値を持ちます。
  比較式が成功すると whileループは継続しますが、
  比較式が失敗すると、numeric()も失敗し、 +:=も失敗し、
  whileも失敗(ループ終了する)し、ループを抜ける。
 という動作をします。
 ということで、if ... then ... の構文を少なくできるケースが多いです。
 慣れると便利です。


風つかい(hshinoh@...)
IconのWWWは、http://www.cs.arizona.edu/icon/
UniconのWWWは、http://unicon.sourceforge.net/index.html
BGM: 風の音