◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

Io Language->画像>1枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1201100624/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
2008/01/24(木) 00:03:44
http://www.iolanguage.com/
http://f21.aaa.livedoor.jp/~kizz/prog/io/_docs/IoProgrammingGuide_ja.html
2デフォルトの名無しさん
2008/01/24(木) 07:51:21
なんでそんな伸びそうも無いものを。
>1 にネタ振りが出来ないようなら早晩落ちるぞ。
3デフォルトの名無しさん
2008/01/24(木) 12:04:58
言語そのものは知らんが実装はガベコレだけ読んだな。
4デフォルトの名無しさん
2008/01/24(木) 13:20:05
ioの構文、メッセージ機構はすごく興味あるんだけど
バインディング機構がヘボいから萌えない…
5デフォルトの名無しさん
2008/01/24(木) 22:28:07
特殊形式に見えるものが普通のメソッドだったりするからメタプログラミングとかは結構できそうだな
文法もわりとわかりやすいな
6デフォルトの名無しさん
2008/01/25(金) 03:22:30
このインターネッツ時代にわざわざ検索しにくい名前をつけんなと
7デフォルトの名無しさん
2008/01/26(土) 17:04:19
>>5
それは良いけど、これはいただけない気が…

Range
v := "before"
f := method(arg, arg)
v println  #=> before
0 to(10) foreach(v, v println) #=> 012345678910
v println #=> 10
8デフォルトの名無しさん
2008/01/27(日) 23:15:50
(過去の)関連スレ
{_proto: プロトタイプベース・オブジェクト指向};
http://pc11.2ch.net/test/read.cgi/tech/1109948927/
9デフォルトの名無しさん
2008/02/03(日) 10:14:47
>>6
io-language
iolanguage
で検索するよろし
10デフォルトの名無しさん
2008/02/03(日) 10:18:52
>>7
Rubyのブロックと同じ問題ですなあ
11デフォルトの名無しさん
2008/02/03(日) 10:42:51
v := "before"
が無くても同じ、これは嫌だな
Rubyのは1.9で直ってるんだよね
12デフォルトの名無しさん
2008/02/03(日) 10:57:05
LLパトルロワイヤルスレから来ました

io-languageの話題はここでいいのかな・・・

まあいいや

io-languageでメッセージ?オブジェクトそのものを取り出すにはどうしたらいいんでしょ

Io> unko := Object clone do(puripuri := method("&&&" println))
==> Object_0x581898:
puripuri = method(...)

Io> unko puripuri
&&&
==> &&&
Io> unko puripuri slotSummary
&&&                      ←puripuriが実行されてしまう
==> "&&&":                 ←文字列にslotSummaryしてしまう

上記で、puripuriを取り出したいのですが・・・
13デフォルトの名無しさん
2008/02/03(日) 10:57:55
> io-languageの話題はここでいいのかな・・・
>
> まあいいや

コピペ失敗 orz ここは読み飛ばしてください
14デフォルトの名無しさん
2008/02/03(日) 11:01:52
unko getSlot("puripuri")
ってこと?
15デフォルトの名無しさん
2008/02/03(日) 11:45:22
>>14
それだ!!!!1
ありがとうございました。

文字列で渡すのがなんか新鮮に感じた
16デフォルトの名無しさん
2008/02/03(日) 19:40:17
何かよさげな言語の予感
17デフォルトの名無しさん
2008/02/03(日) 19:58:23
>>7
v := "before"
f := method(arg, arg)
v println #=> before
Sandbox doSandboxString("Range; 0 to(10) foreach(v, v println)")
v println

スマートとは言い難いけど、Sandboxを使ってとりあえず回避。
187
2008/02/03(日) 20:39:23
>>17
Sandboxなんてあったのか…
あれから考えて、こんな風にやってみた。
うまくいっているようには見える。

scope := method(
expr := call message arguments first
context := Object clone
msg := message(do)
msg setNext(expr)
context prependProto(call sender)
context forward := method( self proto doMessage(call message clone do( setNext(nil) )) )
context doMessage(msg)
)

obj := Object clone
obj l := list(1, 2, 3)
obj f := method( scope( l foreach(v, v println) ))

chk := method( "[obj] " print ; obj slotNames print ; " [v] " print ; Lobby slotNames println )

obj f ; chk
scope( obj l foreach(v, v println) ) ; chk
obj l foreach(v, v println) ; chk

scopeブロック(?)内で self がいる(self l とする)ような仕様で良ければ forward メソッドの設定は省ける。
19デフォルトの名無しさん
2008/02/05(火) 02:38:43
↓のみてて思ったんだけど、++とか--みたいな演算子って直接呼べないの?
http://blog.xole.net/article.php?id=658

value := 0
value ++ := method(self = self + 1)
value -- := method(self = self - 1)
value ++ println
value -- println

結果はファイルから読み込むと何もでないんだけど、コンソール(?)からやるとなんか出力されるんだよね

> io
Io> value := 0
==> 0
Io> value ++ := method(self = self + 1)
==> method(...)
Io> value ++ println
==> 1
Io> value ++ println
==> 1
Io> value println
==> 0

なんでだろ?
あと、↓のにすると上手く動く。この違いがわからない...orz
value getSlot("++") setScope(value) call println
value getSlot("--") call println
20デフォルトの名無しさん
2008/02/05(火) 03:07:40
>>19
selfに代入しても、元のが変わらんっぽい

Io> value := 0
==> 0
Io> value test := method(self = "banzai!")
==> method(
self = "banzai!"
)
Io> value test
==> banzai!
Io> value
==> 1
217
2008/02/05(火) 03:24:01
>>19
> value ++ println
これは、value ++(println) となって println は引数として扱われる。
んで、メソッドの側で仮引数を指定していないのでなにも起こらない。
コンソールで 1 が返ってくるのは、コンソールがメソッドの返値を表示するようになっているだけで、
println が表示しているわけではない。
> value ++ := method(v, self = self + 1)
とすれば何が起こっているかわかりやすいかも。

>>20
self はローカル領域オブジェクトのスロットなんじゃない?
変わる方がおかしいと思います。
2220
2008/02/05(火) 03:41:13
Io> value := Sequence clone setItemType("float32") setEncoding("number") setSize(1)
==> 0.000000
Io> value ++ := method(self += 1)
==> method(
self += 1
)
Io> value ++
==> 1.000000
Io> value
==> 1.000000

やったー ++ できたよー orz

>>21
そっか、selfも単なるread onlyなスロットだからか・・・
2320
2008/02/05(火) 04:18:45
Io> value := 0
==> 0
Io> value ++ := method(call sender setSlot("value", self + 1))
==> method(
call sender value := self + 1
)
Io> value ++
==> 1
Io> value
==> 1

先生!receiverの名前を得る方法はないんでしょうか!


どうでもいいけど、referenceがページ分けされてないので検索しずらいです('A`)
http://www.iolanguage.com/scm/git/checkout/Io/docs/IoReference.html
247
2008/02/05(火) 04:42:21
>>23
リファレンス読むと、
  call message previous name
で、出来そうだけど実際には previous が無い模様。
ソース読むと、それっぽい実装はあありました。
使えるようになれば、value ++ とか出来そうですね。
ただ、>>21の問題もあるので細工がいりそうですけど。

>検索しずらいです('A`)
以前のJavaScript使った妙なやつよりはマシな気がする。
2520
2008/02/05(火) 05:25:05
絶対にスマートにできる方法があるはず!と思ってソース見たら

Number.c の Number のデータ部分に代入しているのが(DATA(self) = しているところ)、
IoNumber_rawClone、IoNumber_newWithDouble_、IoNumber_copyFrom_ くらいしかなくて、
IoNumber_rawClone は、Clone用、
IoNumber_newWithDouble_は、内部のIoState用、
IoNumber_copyFrom_は、組み込まれてないww(たぶん内部用)

オワタ\(^o^)/
Number copyFrom メソッド実装汁!って本家に言っとくか、パッチなげるかだなw
2620
2008/02/05(火) 05:26:36
ああ、言い忘れた。一応、IoNumber_readFromStream にもあったから、Stream使ったらいけるかも
2720
2008/02/05(火) 06:14:24
連投スマソ。

>>26 のStream関連はまだ使われてないようでした orz

>>24
確かに call message previous で行ける!と思いましたが、
IoMessage_previous の中の実装が ifdef で外されている上に、
Ioのメソッドとして組み込まれてないですね。
28デフォルトの名無しさん
2008/02/05(火) 13:10:12
チラシの裏です。

Windows版でコンパイルしたくなって四苦八苦してたんですが、
downloadページで配布されている Io-2008-01-20.tar.gz が、
ShellExecuteのための shell32.lib がリンクされてねえとか、setenvがねえとか、
OS依存なエラーでwin32環境でコンパイルできなくて、どうなっとるねん!!1

エラーつぶしているうちに、Changelog 見たらWindows関連部分が Fix されてるっぽくて、
http://www.iolanguage.com/scm/git/checkout/Io/
↑見たら直ってて、俺の時間返せー!!! って感じです・・・ orz

とりあえず、git落として最新版ダウンロードしたお
29デフォルトの名無しさん
2008/02/05(火) 18:18:29
最近のバージョンって do( とかで改行すると、エラーで続きが入力できない。
3019
2008/02/06(水) 01:22:28
なるほど、selfはローカルのslotかあ。

というか、前回の>>19で書いた++は1の評価を返してるだけ?
value := 3
value setSlot("++", method((self + 2) println))

value ++ // 5

やたー

ということは...ここは>>19のクロージャか!!w
value := 6
value ++ := block(
block(
value = value + 1
call activated
)
) call

(value ++) call call call call
value println

全然答えじゃねえorz
31デフォルトの名無しさん
2008/02/06(水) 01:48:38
>>30
解決になっとらんでワロタ
327
2008/02/06(水) 03:16:47
無理矢理解決してみた。
v := 0

inc := method(
  res := nil
  recv := call target
  cntxt := call sender
  cntxt foreachSlot(name, value,
    if (recv == cntxt getSlot(name),
      res = cntxt setSlot(name, cntxt getSlot(name) + 1)
    )
  )
  msg := call message
  right := msg argAt(0)
  msg setArguments(list())
  msg setNext(right)
  res ++ := Lobby getSlot("inc")
  res
)

v ++ := getSlot("inc")

v println
(v ++ ++ ++ println)
v println
337
2008/02/06(水) 03:19:22
>>32 書いてて気づいたんだけれど
1 + ; 2
は、 1 + 2 と解釈されるのね。
改行も同様につながってしまう。
そのせいで右辺のメッセージのごまかしが完全じゃない。
34デフォルトの名無しさん
2008/02/06(水) 03:55:34
俺も...と思ったけど、ダメだったorz

value := 0
value ++ := method(
call message setName("call")
call sender setSlot("self", self + 1)
)

(value ++) println //1
value println // 0
35デフォルトの名無しさん
2008/02/08(金) 14:08:19
++の話題、Smalltalkスレで聞いたら、同じような力技でしたw

アラン・ケイも認めた!Ruby>>>>>Smalltalk
http://pc11.2ch.net/test/read.cgi/tech/1150106090/169

> >>165
> やっつけですが、Squeak Smalltalk で。
>
> Object >> inc
>   | sender index |
>   sender := thisContext sender.
>   index := (sender method at: sender pc - 2) \\ 16 + 1.
>   ^sender tempAt: index put: (sender tempAt: index) + 1
>
> | a b before after |
> a:= 1. b := 2.
> before := {a. b}.
> a inc. b inc.
> after := {a. b}.
> ^{before. after} "=> #(#(1 2) #(2 3)) "
36デフォルトの名無しさん
2008/02/08(金) 14:19:36
>>35
Io もレシーバが代入されているスロット名を知る手段があればできるんだけどね。
37デフォルトの名無しさん
2008/02/09(土) 07:44:21
つーか何が特徴なの?って物ばっかりだなこの手のは
++にしてもただの欠陥だし
無理矢理処理系の裏技使って解決しました!
ってまるっきりバカに見える
38デフォルトの名無しさん
2008/02/09(土) 08:08:10
> つーか何が特徴なの?って物ばっかりだなこの手のは

それは、あなたがバカなだけ

> ++にしてもただの欠陥だし

それは正しい

> 無理矢理処理系の裏技使って解決しました!
> ってまるっきりバカに見える

スマートではないのには同意。
しかし、どの言語にもスマートにできないものはある。
>>37の使っている言語にも苦手な処理はあるだろう?
39デフォルトの名無しさん
2008/02/09(土) 08:23:45
>>37 はスマートにディップスイッチでバイナリを直打ちしている
40デフォルトの名無しさん
2008/02/09(土) 08:24:26
なんだこいつ
41デフォルトの名無しさん
2008/02/09(土) 08:32:58
>>38
これはこれは
別に>>38を名指しでバカって言ったわけじゃないよ
リトマス試験紙にするつもりは無かったのだが

それと、欠陥なら直せば?
42デフォルトの名無しさん
2008/02/09(土) 09:57:51
欠陥ではなくセマンティックスの違いでしょう。
変数を箱のようなものと捉えるか、ラベルのようなものと捉えるか、という。
43デフォルトの名無しさん
2008/02/09(土) 12:52:34
マクロを導入すればいいのに。それで解決する問題だ。
44デフォルトの名無しさん
2008/02/09(土) 13:12:13
>>43
あーそーゆーことね。
45デフォルトの名無しさん
2008/02/09(土) 17:38:49
まー、Ioはマクロがなくてもこれだけできる!みたいなところはある
というかマクロも実装できそうだがどうか
46デフォルトの名無しさん
2008/02/10(日) 15:55:43
っていうか、

>>41
>それと、欠陥なら直せば?

あなたの使ってる言語はすぐ直せるの欠陥?
だいたいの場合、欠陥があったら言語のコアな部分を弄らないといけないと思うんだけど、そうじゃないのが現実なんだろうか...?

small talkの例がでたけど、ioとかこの辺の言語は、その欠陥をなんとかできそうな感じなんだよな。
だからみんな魅力を感じてるんじゃないかと。
47デフォルトの名無しさん
2008/02/10(日) 16:08:46
++関連見てきた。
http://pc11.2ch.net/test/read.cgi/tech/1188997302/559

なんかすげー理解が広がリングwww
これ見ると言語実装論みたいのが分かって面白いわ

あと、smalltalkの実装も面白い
48デフォルトの名無しさん
2008/02/19(火) 23:56:58
IoでObjective-Cの文法を導入する試み。

こういう「クレージー」なことができる言語は素晴らしい。
が、日常的に使いたいかどうかはまた別問題である。

http://www.rubyist.net/~matz/20080216.html#p01
49デフォルトの名無しさん
2008/03/05(水) 08:42:59
Rangeってどうすれば使えるのでしょうか?
何か準備がいるのかな。
Io 20070410
Io> Range

Exception: Object does not respond to 'Range'
---------
Object Range Command Line 2
50デフォルトの名無しさん
2008/03/05(水) 09:11:29
windowsなら、C:\usr\local に置かなきゃ駄目
ってやつ?
51デフォルトの名無しさん
2008/03/05(水) 12:21:31
winバイナリだと正規表現もないのな
52デフォルトの名無しさん
2008/03/05(水) 20:49:16
たしかにwindowsバイナリで、別の場所に入れてました。
c:\usr\local\bin にコピーしてやってみたら使えるようになりました。
どうもありがとう。

Io> 1 to(8) map(v,v**2)
==> list(1, 4, 9, 16, 25, 36, 49, 64)
Io> 1 to(8) map(**2)
==> list(1, 1, 1, 1, 1, 1, 1, 1)
Io> "" asMutable do(65 to(65+25) map(v,append(v)))
==> ABCDEFGHIJKLMNOPQRSTUVWXYZ
53デフォルトの名無しさん
2008/03/22(土) 23:10:19
数値と数値を連結すると文字列じゃなくて数値になるんですね。
Io> 123 .. 456
==> 123456
Io> 123 .. 456 +1
==> 123457
Io> 123 .. 456 /3
==> 123152
Io> 123+456/3
==> 275
54デフォルトの名無しさん
2008/03/23(日) 16:34:50
>>53
type で見てみると Sequence だし
123 .. (456 / 3)
こういうことじゃない?

下のようにするとエラーも出るし。
Io> Number ++ := method(v, self .. v)
==> method(v,
    self .. v
)
Io> 123 ++ 456 / 3            
  Exception: Io Assertion 'operation not valid on non-number encodings'
  ---------
  message '/' in 'Command Line' on line 1        
55デフォルトの名無しさん
2008/03/23(日) 16:59:00
対話モードの結果にダブルクオートが出ないから勘違いしたのかな
何でもかんでもオブジェクトをasStringしてつなぐ模様
56デフォルトの名無しさん
2008/03/23(日) 17:50:07
どうも失礼しました。計算したものが連結されてるだけなんですね。
57デフォルトの名無しさん
2008/04/18(金) 01:11:19
Ioで日本語プログラミング

Io でもおk - はてな使ったら負けだと思っている
http://d.hatena.ne.jp/mr_konn/20080304/1204632557

関連ページ

第20回 日本語でおk | WIRED VISION
http://wiredvision.jp/blog/masui/200803/200803030100.html

Ruby もいいけど Smalltalk でも、おk。 - sumim’s smalltalking-tos
http://d.hatena.ne.jp/sumim/20080303/p1

inforno :: 日本語プログラミング言語Scala
http://inforno.net/articles/2008/03/04/japanese-language-programing-in-scala
58デフォルトの名無しさん
2008/04/22(火) 18:47:28
DarwinportsでIoを入れたのですが >>49と同じ状態で詰まっています
どのようにすればいいのでしょうか?
59デフォルトの名無しさん
2008/04/22(火) 23:02:02
>>58
普通に落としてインストールする
60デフォルトの名無しさん
2008/04/27(日) 09:17:59
Io> exit

Exception: while saving history file '$HOME/.io_history', reason: Device not configured
---------
saveHistory Z_CLI..io 42
ReadLine ? Z_CLI..io 42
Call relayStopStatus A2_Object.io 295
CLI saveHistory Z_CLI..io 55
Object exit Command Line 1

こんなのが出て正常に終了できない
61デフォルトの名無しさん
2008/04/27(日) 10:35:17
HOME環境変数は設定されてる?
62デフォルトの名無しさん
2008/04/27(日) 12:35:51
できてます

また起動時に.io_historyがあるとすぐ落ちます
63デフォルトの名無しさん
2008/04/29(火) 22:28:52
インクリメント演算子実装してるが
++numなら簡単だが
num++はむずいな
64デフォルトの名無しさん
2008/04/30(水) 17:25:44
なぜ?
65デフォルトの名無しさん
2008/04/30(水) 20:02:09
前置だとmessage call argAt(0)でnumそのものを取得出来て
そっからメッセージの書き換えでnum = num + 1;っていうメッセージを作れるけど
後置だとすでにnumが評価されていてnumのメッセージそのものを取得できない。
6665
2008/04/30(水) 20:27:07
まあ俺がioに詳しくないだけかもしれんけど
67デフォルトの名無しさん
2008/05/01(木) 19:43:40
> ++num
ああ、その手があったか!
68デフォルトの名無しさん
2008/05/21(水) 03:29:46
Ioではオブジェクトリテラル({a:1,b:2}みたいなやつ)って書けないの?
着想を得たってあがってるNewtonScript、Luaにはあったのに。
69デフォルトの名無しさん
2008/05/26(月) 01:27:36
>>68
演算子や中括弧にもメソッド割り当てられるから簡単にできるよ
70デフォルトの名無しさん
2008/05/26(月) 02:59:45
>>69
中括弧に割り当てるのやめて、まじやめて
昔","演算子で泣かされたの重いだして涙目
71デフォルトの名無しさん
2008/05/26(月) 07:59:19
ホワイトスペースに割り当てられたら最強なのにね
72デフォルトの名無しさん
2008/05/26(月) 08:26:26
>>70
いや引数の数チェックしてやればいいだけの話だし
73デフォルトの名無しさん
2008/05/28(水) 03:38:05
>>69
すげえ、本当に簡単に出来るね。
List,Mapでの[]といい、なんで標準で定義してないんだろう。
{} := method(
obj := Object clone
call message arguments foreach(i,obj doMessage(i setName("setSlot")))
obj
)
{a=1,b=1+1} println
74デフォルトの名無しさん
2008/05/31(土) 04:53:46
多分、>>68-73 みたいなFAQな流れを期待して、
Io sugeeeeとなるというのを想定しているのだろう
75デフォルトの名無しさん
2008/07/05(土) 05:35:52
ほしゅ
76デフォルトの名無しさん
2008/07/30(水) 20:44:36
対話型で初期化処理とかできないの?
77デフォルトの名無しさん
2008/08/04(月) 20:26:33
何をしたいの?
78デフォルトの名無しさん
2008/08/05(火) 08:09:26
対話型インタプリタとエディタを同時に使いたい

イメージ的には、
prolog系でのedit.
haskellの処理系の:editみたいなことがしたい
79デフォルトの名無しさん
2008/10/09(木) 13:58:00
hosyu
80デフォルトの名無しさん
2009/01/23(金) 20:35:49
以下のコードで、最後が false になってしまうのはなぜなんでしょうか?
その前の出力を見る限りでは同じオブジェクトに見えるんですが…

Foo := Object clone
Foo priv := method(
  list(call sender, self)
)

Foo bar := method(
  self priv
)

l := Foo bar
l println
l at(0) println #=> Foo_0x80a87f0 ...
l at(1) println #=> Foo_0x80a87f0 ...
((l at(0)) == (l at(1))) println #=> false !!
81デフォルトの名無しさん
2009/01/23(金) 20:57:08
typeを見るとObjectとFooになってるね
82デフォルトの名無しさん
2009/01/23(金) 21:41:51
>>81
レスありがとうございます。

l at(0) type println #=> "Object"
l at(1) type println #=> "Foo"

と、すると確かに違っていますね。
両方 Foo になっているべきに思えるんですが…うーん。
83デフォルトの名無しさん
2009/01/24(土) 10:18:49
仮想機会のバグだ
一期一会だ
84デフォルトの名無しさん
2009/01/25(日) 22:05:49
そうですね。バグですよね…。
レポートしておきます。
8580
2009/01/26(月) 10:56:59
バグではないそうです。
call sender は呼び出し元のセルフではなく、ローカル環境(?)を返すとのこと。
(なので、call sender self とすれば良かった)
それで思いついて試したんですが、呼び出し元の変数を書き換えたりもできるんですね。

Foo := Object clone
Foo bar := method(
  call sender v println
  call sender v = "new value"
)

Object clone do(
  v := "local value"
  Foo bar           #=> local value
  v println         #=> new value
)

86デフォルトの名無しさん
2009/02/01(日) 12:11:47
Mac Portsにあったんでインストールしてみたものの「io」て打ちこんでも
コマンド見つからねーとか言うからport contentsしてみたらバイナリ名が「osxvm」だった。
87デフォルトの名無しさん
2009/02/07(土) 11:16:46
皆Windowsでioやる時って、公式のWindows版バイナリ使ってます?
それとも自分でビルドしたの使ってます?

最新tarをMingwでビルドしようと思ったら、
IoFile.cでsys/wait.h使ってるらしくビルド通らないんですよね・・・。

回避案・代案知ってる人教えてください。
88デフォルトの名無しさん
2009/02/07(土) 18:40:55
ヘッダファイル削除すりゃいいじゃん・・
89デフォルトの名無しさん
2009/02/07(土) 20:42:07
ヘッダファイルの削除というのは、私には少々難しそうなので
まずCygwin使って再度挑戦してみたいと思います。
ありがとうございました。
90デフォルトの名無しさん
2009/02/13(金) 13:03:52
↓Scalaスレで気になったことがあったんですが、IOだとこの辺の
優先順位の実装ってどんな風になってるんでしょうか?

プログラミング言語 Scala
http://pc11.2ch.net/test/read.cgi/tech/1205156417/739-743

739 デフォルトの名無しさん [] 2009/02/12(木) 02:57:16
+ や * はメソッドだって聞いたけど、
2 + 3 * 4 は 14ってちゃんと評価してくれるんだね
メソッドチェーンになるから、20が戻ってくると思った

これって遅延評価のおかげ?
Scalaのソースをちゃんと読まないといけないんだろうけど

740 デフォルトの名無しさん [sage] 2009/02/12(木) 03:21:54
+や*がメソッドだというのは間違ってないけど、中置式のメソッド呼び出しに
関しては、演算子の最初の1文字で優先順位が決まるというルールになってる。
このルールのおかげで、算術式に関しては直感的な動作をしてくれる。
Scala言語仕様6.12.3 Infix Operationsによると、優先順位は以下のようになってる。

letter < '|' < '^' < '&' < '<', '>' < '=', '!' < ':' < '+', '*' < '/', '%' < all other special characters

たとえば、

"HOGE" charAt 0 + 1

という式があった場合、charAtの最初の文字はletterなので、+よりも演算子としての優先順位は低い。
そのため、

"HOGE".charAt((0).+(1))

と解釈される。
91デフォルトの名無しさん
2009/02/13(金) 13:04:54

741 デフォルトの名無しさん [sage] 2009/02/12(木) 03:22:54
訂正。s/letter/all letters/

742 740 [sage] 2009/02/12(木) 03:25:55
ありゃりゃ。コピペして不等号加えるときにミスったorz
正しくは、以下。

all letters < '|' < '^' < '&' < '<', '>' < '=', '!' < ':' < '+', '-' < '*', '/', '%' < all other special characters

743 739 [] 2009/02/13(金) 00:44:52
>>740
サンクス

BigDecimalでも試したけど、ちゃんと掛け算・割り算を優先するってありがたいな
RemoteActorの動作がいまいちわからなかったり(コンパイルした後、scalaコマンドで動かないのに、javaコマンドからだったらちゃんと動くとか)
わからんことだらけなんだけど、しばらく弄ってみることにする
92デフォルトの名無しさん
2009/02/13(金) 16:59:48
http://f21.aaa.livedoor.jp/~kizz/prog/io/_docs/IoProgrammingGuide_ja_only.html
マニュアルには
標準の演算子の優先順位は C 言語と同じ
ユーザー定義の演算子は常に左から右へ
とある
93デフォルトの名無しさん
2009/02/14(土) 13:04:15
なるほど・・・

> ユーザ定義の演算子 (標準の演算子名は使えない) は、常に左から右に動作する。 Us
「ユーザ定義」は「常に左から右」か
Scalaは最初の一文字できまるということなので、Scalaの方がよいかもだな・・・。
94デフォルトの名無しさん
2009/02/19(木) 10:13:06
「左から右へ」は演算子が左結合ってことじゃないの? 

定義するときに優先度指定はできるよ 

以下を参考に 
http://subtech.g.hatena.ne.jp/cho45/20071021/1192926373
95デフォルトの名無しさん
2009/02/19(木) 20:31:25
文字列パースにおいてのみ機能するようだ
あと、
http://www.nabble.com/Question-about-OperatorTable-and-difference-between-Interpreter-Scripts-td17356792.html
対話環境とスクリプト環境では挙動が変わるらしい
9687
2009/03/18(水) 19:56:06
MinGWでビルドできました。

>>88さんが仰っていたように、
<sys/wait.h>をコメントアウトして
Line:238辺りにある
 IONUMBER(WEXITSTATUS(exitStatus))

 IONUMBER( ( (exitStatus >> 8) & 0xff) )
と書き直したらいけました。

今更ですが、ありがとうございました。
97デフォルトの名無しさん
2009/04/15(水) 00:08:59
ねーよw
98デフォルトの名無しさん
2009/08/13(木) 08:04:09
96です。
久しぶりにgithubから最新取ってきてコンパイルしてみましたが、
>>96の問題は修正されていました。良かった。

しかし今度はアドオンが上手く動かせていません。
使っている方いましたら、動作具合を教えて頂けないでしょうか?
99デフォルトの名無しさん
2009/12/01(火) 01:16:47
ろびー!
100デフォルトの名無しさん
2009/12/16(水) 19:42:55
公式サイトが・・・
github行くといくつかあるんだけどどれがいいんだ?
101デフォルトの名無しさん
2009/12/17(木) 00:30:10
>>100
公式がいいなら、公式のgithub。
最新版がいいなら、githubのnetworkタブクリックして日付が一番新しいそうなのをえらぶ
102デフォルトの名無しさん
2009/12/17(木) 03:19:07
子供のおもちゃ?
103デフォルトの名無しさん
2009/12/17(木) 16:56:56
>>101
今朝公式直ったみたいだな
公式から飛べるgithubで落とした
ありがとう
104デフォルトの名無しさん
2009/12/17(木) 17:03:13
ちなみに落としたのはdownload押してmaster選んだやつ
105デフォルトの名無しさん
2009/12/17(木) 18:52:37
余計なことは言わなくていい
106デフォルトの名無しさん
2009/12/18(金) 12:42:50
セックスしたときに下の前の穴に入れた、なんて明示する必要ないよな
107デフォルトの名無しさん
2009/12/18(金) 18:46:25
そんな小さいところに入るかよボケが
108デフォルトの名無しさん
2010/01/08(金) 00:53:05
久しぶりにいじってみたんですが、いつのまにか、++ が実装できるようになっていますね。
call message previous が実装されていました。

Number ++ := method(
varname := call message previous name
now := call sender getSlot(varname)
if (now, call sender setSlot(varname, now + 1))
self
)

a := 1
a println # => 1
a ++ println # => 1 (後置なので返ってくるのは 1 !)
a println # => 2

(a++ + 456 / 3) println # => 154
a println # => 3
109デフォルトの名無しさん
2010/04/17(土) 00:41:01
この言語はいったいどういう用途に向いてるの?
110デフォルトの名無しさん
2010/05/30(日) 02:19:56
漏れら極悪非道のageブラザーズ!
今日もネタもないのにageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧   ∧_∧    age
 (・∀・∩)(∩・∀・)    age
 (つ  丿 (   ⊂) age
  ( ヽノ   ヽ/  )   age
  し(_)   (_)J
111デフォルトの名無しさん
2010/07/23(金) 12:30:29
githubに移行してる
stevedekorte's io at master - GitHub
http://github.com/stevedekorte/io
112デフォルトの名無しさん
2011/01/06(木) 02:10:47
113デフォルトの名無しさん
2011/03/11(金) 01:26:24.60
test
114天使 ◆uL5esZLBSE
2011/07/03(日) 21:16:44.71
>>108
ハアアァァアアアアアアアアアアアアアアア???
ゴミだな
うるさいゴミ
115デフォルトの名無しさん
2011/08/08(月) 23:24:45.08
http://www.amazon.co.jp/dp/4274068579
116デフォルトの名無しさん
2011/08/09(火) 00:07:08.88
うへえ、翻訳出たのか
言語つまみぐい入門には最適だな
117デフォルトの名無しさん
2011/08/09(火) 01:21:40.84
ためしに貼り付けてみたんだけど、このスレ、見てる人いるんですね。

ちなみに件の本は、言語のつまみ食いに慣れている人にとっては
既に味見済みの言語ばかりかと思いますが、まとめて復習出来るという点で良書です。
しっかり読んでも、流し読みでも楽しい本だと思います。
# まだ読み終えていませんが。

一方、そうでない人にとっては、つまみ食いというほどお手軽に読める本ではないかもしれません。
でもIoスレを見ているような人には不要な心配ですね。
118デフォルトの名無しさん
2011/08/09(火) 20:30:47.22
うっほなんだこれ
こんな本出るんだ
買うしかねえ
119デフォルトの名無しさん
2011/08/20(土) 08:46:07.96
その本からきま☆すた
Luaはもういいや^^
120デフォルトの名無しさん
2011/08/20(土) 19:29:25.25
組み込み的にも言語的にもIoのほうがかなりいいと個人的に思ってる
致命的に流行ってないけど
121デフォルトの名無しさん
2011/08/21(日) 07:02:58.90
>> 120

問題は、

(1) 実行速度の遅さ
(2) addon に必要なライブラリを含めた場合のビルドの面倒さ

にあるように思う

(1) に関しては、他VM上で動くIo実装やIoに影響を受けたとしている言語に期待
(2) に関しては、ポータビリティがひとつの売りなので本家では対応しないだろうから、これまた他実装に期待
122デフォルトの名無しさん
2011/11/03(木) 16:15:25.77
よっこいしょ
123デフォルトの名無しさん
2011/11/03(木) 17:41:04.67
最近はこの言語どうなの
124デフォルトの名無しさん
2012/07/01(日) 14:23:51.92
いい言語だと思うんだがなあ
125デフォルトの名無しさん
2012/08/09(木) 19:41:15.97
           _
           |
       ,、‐''''´ ̄ ̄``''''-、,
     /  \/      ::\
    /  \/\/     ::::::ヽ
    / \/\/\/    :::::::ヽ
    |ヽ/\・∀・ /\/   ::::::::|    アキラメロンテスト
    |./\/\/\/\   :::::::::|
    ヽ  \/\/\    :::::::::/
    ヽ /\/\    ::::::::::/
     \ /\    :::::::::::::::/
       `''-、、,,:::::::::::,,、、‐''´

126デフォルトの名無しさん
2012/09/04(火) 17:26:30.16
Singletone := Object clone
Singleton clone := Singleton

とやってシングルトンプロトタイプを作る。
で、Singletonを継承した新しいプロトタイプを作る。

ExSingleton := Singleton clone

だめだ、頭がクラスベースになってる...orz
127デフォルトの名無しさん
2012/09/10(月) 02:43:14.70
Singletonって今まで使う機会がなかったんだけど、
試しにPythonで書いてみようとしたら、意外と面倒。
IoのSingletonってシンプルでカコイイ!
128デフォルトの名無しさん
2012/10/14(日) 02:13:02.73
ほす
129デフォルトの名無しさん
2012/11/12(月) 01:45:12.89
              ∩___∩
            /  ノ   \  ヽ
            | ●    ● |
          彡   (_●_)    ミ
           /、   |∪|    ,\   この鮭の切り身やるから帰れよ
          /.|     ヽノ    | ヽ
       ,,/-―ー-、, --、   .|_,|
    r-、,'''";;:;;:;::;;;;:;;::;:;:;;::;:;`'- /_,l,,__ )
   |,,ノ;;:;r'" ̄ ゙̄^"`Y'-、;;;::;:;::;:;:;:;::;:|
    .ヽ,′       ;   `"";;;;;⌒゙')
     ´`゙'''''''''''‐-‐'"`‐-‐'"゛  `゙´
130デフォルトの名無しさん
2013/03/23(土) 17:18:18.85
まだおわらんよ
131デフォルトの名無しさん
2014/01/05(日) 21:06:36.43
          「;:丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:_;:}
          ト、;:;:;:丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:_;:;: --―;:''"´;:_」
          {::ト、:;:;:;:;:;:` '' ー―――;:;: '' "´;:;:;:;:;:;:;:;:;:;_ ,.ィ彡!
          l::l 丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:_,. -r==ニ二三三 }
          ',:i r- 、、` ' ―――― '' "´ ,ィ彡三三三三三/、
            || ヾ三)      ,ィ三ミヲ  `丶三三三三三ん',
            lj         ゙' ― '′     ヾ三三三ミ/ )}
           | , --:.:、:..   .:.:.:.:..:.:...      三三三ツ ) /
           | fr‐t-、ヽ.  .:.:. '",二ニ、、    三三シ,rく /
           l 丶‐三' ノ   :ヾイ、弋::ノ`:.:.    三シ r'‐' /
           ', ゙'ー-‐' イ:   : 丶三-‐'":.:.:..    三! ,'  /
            ',    /.:             ミツ/ー'′
            ',   ,ィ/ :   .:'^ヽ、..       jソ,ト、
             ',.:/.:.,{、:   .: ,ノ 丶:::..  -、   ,ハ  l、
            ヽ .i:, ヽ、__, イ   _`゙ヾ  ノ   / ,l  l:ヽ
             ,.ゝ、ト=、ェェェェ=テアヽ }   ,/  l  l:.:(丶、
           _r/ /:.`i ヽヾェェシ/  ゙'  /   ,' ,':.:.:`ヾヽ
     _,,. -‐ '' " ´l. { {:.:.:.:', `.':==:'."       /   / /:.:.:.:.:.:.} ト―-- ,,_
一 '' "´        ',ヽ丶:.:.:ヽ、 ⌒    ,r'"    / /:.:.:.:.:.:.:ノ,ノ |      ``丶、
            ヽ丶丶、:.:.ゝ、 ___,. イ     / /:.:..:.:.:.,ィシ′ |
             `丶、 ``"二ユ、_,.,____/__,/;: -‐ '"  /
132デフォルトの名無しさん
2014/08/27(水) 20:21:19.99ID:sI4/2wV1
何か動きはないかな?
133デフォルトの名無しさん
2014/08/30(土) 18:21:50.11ID:b6PiuM0V
だれかコレをIoで書いてみて

Command = {};
Command.Do = function(){};
Command.UnDo = function(){};
Journal = {};
Journal.ReDo = function(){};
Journal.UnDo = function(){};
Journal.DoIt = function( aCommand )
{
 aCommand.Do();
 var unDo = this.unDo, reDo = this.ReDo;
 this.UnDo = function()
 {
  aCommand.UnDo();
  this.UnDo = unDo;
  this.ReDo = function()
  {
   aCommand.Do();
   this.ReDo = reDo;
  }
 }
}
ActiveJournal = Object.create( Journal );
HelloCommand = Object.create( Command );
HelloCommand.Do = function()
{
 WScript.StdOut.WriteLine( "Hello" );
}
ActiveJournal.DoIt( HelloCommand );
ActiveJournal.UnDo();
ActiveJournal.ReDo();
134デフォルトの名無しさん
2015/07/06(月) 08:06:16.21ID:4KQhzWHv
7つの言語〜を読んで興味を持ったのですが、Ioの書籍はありますでしょうか?
135デフォルトの名無しさん
2015/10/22(木) 21:11:26.41ID:Fsr7aN41
>>2
>>1がネタ振りできなくても残ってるじゃないか
デタラメ言いやがって
お前はろくになにもせず歳をとってしまったことだろう
136デフォルトの名無しさん
2015/11/28(土) 16:49:28.42ID:jpi/hJbu
保守
137デフォルトの名無しさん
2015/11/29(日) 03:52:42.56ID:KDiY7g/+
smalltalkあるいはjavascriptは、
プロトタイプベースのオブジェクト指向言語として、
似ていますでしょうか?
ioライクなインタプリタを作っていますが、ioの情報が少ないため、
他に参照できる情報がないか探していました。
138デフォルトの名無しさん
2017/01/05(木) 15:39:39.05ID:4LtaZ0DL
保守
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況



lud20241219191606
このスレへの固定リンク: http://5chb.net/r/tech/1201100624/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「Io Language->画像>1枚 」を見た人も見ています:
thee michelle gun elephant vol.1097
thee michelle gun elephant vol.1000
thee michelle gun elephant vol.1165
thee michelle gun elephant vol.976
thee michelle gun elephant vol.932
thee michelle gun elephant vol.1000
thee michelle gun elephant vol.1135
thee michelle gun elephant vol.999
thee michelle gun elephant vol.1072
thee michelle gun elephant vol.1175
thee michelle gun elephant vol.1058
Regular Expression(正規表現) Part17
vanity lounge 2
ふりりん「Outlook on life has changed」
Gibson Les Paul Studio Part9
Welcome to the new 'argue' board!
Elite: Dangerous 49Ly
Elite: Dangerous 52Ly
Fall Guys: Ultimate Knockout Part25
MS、Googleに続いてLinuxもファーウェイにOS提供終了
Fall Guys: Ultimate Knockout Part10
【UCGO】UC-GUNDAM ONLINE 第11話 【PS】
Elite: Dangerous 36Ly
Fall Guys: Ultimate Knockout Part11
Fall Guys: Ultimate Knockout Part38
GUILTY GEAR新作スイッチングハブwwwwww
Fall Guys: Ultimate Knockout Part24
we should be dancing!!
LIVE CLEAN STAY YOUNG
Elite: Dangerous 53Ly
Gibson Les Paul 総合スレ Part51
Gibson Les Paul 総合スレ Part45
ラウンジリザード Lounge Lizard Part5
【GetUp】 KISS ALIVE 38 【GetDown】
月姫 -A piece of blue glass moon 9
シン・ゴジラ GODZILLA RESURGENCE 29
月姫 -A piece of blue glass moon 3
LOUIS VUITTON★ルイ・ヴィトンPART62
RISING SUN ROCK FESTIVAL 2019 vol.6
シン・ゴジラ GODZILLA RESURGENCE 23
ハートランドを語ろう MemorialNumber 33
月姫 -A piece of blue glass moon 2
Ivy to Fraudulent Game Part2
SAISON GOLD Premium
Oxygen Not Included Part2
Oxygen Not Included Part54
Oxygen Not Included Part8
Oxygen Not Included Part40
Oxygen Not Included Part6
Oxygen Not Included Part46
Oxygen Not Included Part20
Oxygen Not Included Part27
Oxygen Not Included Part23
金枝篇(きんしへん、The Golden Bough)
Welcome to the new 'chugoku' board!
NARUTO-ナルト-疾風伝 其の弐百四拾二
NARUTO-ナルト-疾風伝 其の弐百四拾壱
ビギナーズ-Absolute Beginners-
ROUND TABLE featuring Nino part8
お前らCPUやグラボやIntel Arc使ってる?405
FRONTIER BACKYARD 10 SCAFULL KING
nigel cabourn ナイジェルケーボン
[Armour Modeling]〜なんと未受賞だった篇〜
au DIGNO M KYL22 by KYOCERA Part5
NARUTO -ナルト- ネタバレスレ 其の弐拾七
09:03:00 up 7 days, 19:27, 1 user, load average: 18.79, 16.43, 13.79

in 0.017405986785889 sec @0.017405986785889@0b7 on 121923