Io Language

このエントリーをはてなブックマークに追加
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
ttp://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
「左から右へ」は演算子が左結合ってことじゃないの? 

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

以下を参考に 
ttp://subtech.g.hatena.ne.jp/cho45/20071021/1192926373
95デフォルトの名無しさん:2009/02/19(木) 20:31:25
文字列パースにおいてのみ機能するようだ
あと、
ttp://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
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.99 ID:sI4/2wV1
何か動きはないかな?
133デフォルトの名無しさん
だれかコレを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();