ãã¼ã¹çµæãè¦ã
ã¡ãã»ã¼ã¸ãªãã¸ã§ã¯ããè¦ãã¨ãã¼ã¹çµæãããã
f := method(call message argAt(0))
ä¸è¨ã®é¢æ°ã使ã£ã¦ãããã試ããçµæã
Io> f(x+y) ==> x +(y) Io> f(x+y) name //xãåãåºã ==> x Io> f(x+y) next ==> +(y) Io> f(x+y) next name //+ãåãåºã ==> + Io> f(x+y) next argAt(0) //yãåãåºã ==> y Io> f(x+y*z) //ã¡ããã¨åªå é ä½ããã ==> x +(y *(z)) Io> f(x*y+z) ==> x *(y) +(z) Io> f(x:=y) //ã¡ã½ããã«å¤æãããä¾ ==> setSlot("x", y) Io> f(x=y) ==> updateSlot("x", y) Io> f(x[y]) ==> x squareBrackets(y) Io> f(x{y}) ==> x curlyBrackets(y) Io> f(x:y) //ã²ã¨ã¤ãªããã®ååã¨è§£é ==> x:y Io> f(x:y) name ==> x:y Io> f(x:y) next ==> nil Io> f(x :y) //å¼æ°ç¡ãã¡ã½ããã®ãã§ã¤ã³ã¨è§£é ==> x : y Io> f(x :y) name ==> x Io> f(x :y) next ==> : y Io> f(x :y) next next ==> y Io> f(x :(y)) //:ãæ¼ç®å(ã¡ã½ãã)ã¨ãã¦è§£é ==> x :(y) Io> f(x :(y)) next ==> :(y) Io> f(x :(y)) next name ==> : Io> f(x :(y)) next argAt(0) ==> y Io> f(x:(y)) //x:ã¨ããé¢æ°ã®å¼ã³åºãã¨è§£é ==> x:(y) Io> f(x:(y)) name ==> x: Io> f(x:(y)) next ==> nil
Operator ::= { ":" | "." | "'" | "~" | "!" | "@" | "$" | "%" | "^" | "&" | "*" | "-" | "+" | "/" | "=" | "{" | "}" | "[" | "]" | "|" | "\" | "<" | ">" | "?" }
http://iolanguage.com/scm/git/checkout/Io/docs/IoGuide.html#Appendix-Grammar
æ¼ç®åã¨ã¯ãåã«è±æ°å以å¤ã®æåã«ããååããã¤ã¡ã½ããã§ãããä¾å¤ã¨ãã¦ã":"(ã³ãã³), "_"(ã¢ã³ãã¼ã¹ã³ã¢), '"'(ããã«ã¯ã©ã¼ã), "."(ããã) ã¯æ¼ç®åã«ä½¿ãããã¾ã次ã®ãã®ã¯è±æ°åã«ããååã ãæ¼ç®åã¨ãã: "and", "or", "return".
http://f21.aaa.livedoor.jp/~kizz/prog/io/_docs/IoProgrammingGuide_ja_only.html#Language