- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

front page

はじめに Edit

オブジェクト指向でメッセージ指向なIO言語について。
検索考えて、iolanguageで統一します。

メモ Edit

文字列(コード)がどう解釈されるかを見る Edit

Message fromString を使います。

Io> Message fromString("a:=123+2134*4") print
setSlot("a", 123 +(2134 *(4)))==> setSlot("a", 123 +(2134 *(4)))

演算子いじりたい Edit

OperatorTableを使います

Io> OperatorTable
==> OperatorTable_0x470b98:
Operators
  0   ' ( ) . ? @ @@
  1   **
  2   ++ --
  3   % * /
  4   + -
  5   << >>
  6   < <= > >=
  7   != ==
  8   &
  9   ^
  10  |
  11  && and
  12  or ||
  13  ..
  14  %= &= *= += -= -> /= <- <-> <<= >>= ^= |=
  15  return
  16  ,

Assign Operators
  ::= newSlot
  :=  setSlot
  =   updateSlot

To add a new operator: OperatorTable addOperator("+", 4) and implement the + mes
sage.
To add a new assign operator: OperatorTable addAssignOperator("=", "updateSlot")
 and implement the updateSlot message.

適当に演算子定義してみる例

Io> Object =| := method(s, call message print)
==> method(s,
    call message print
)
Io> OperatorTable addOperator("=|", 7)
==> OperatorTable_0x470b98:
Operators
  0   ' ( ) . ? @ @@
 :
 :
Io> "moge" =| "xyzzy"
=|("xyzzy")==> =|("xyzzy")



Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2008-02-03 Sun 11:40:47 JST (3339d)