08/02/05 03:24:01 .net
>>19
> value ++ println
これは、value ++(println) となって println は引数として扱われる。
んで、メソッドの側で仮引数を指定していないのでなにも起こらない。
コンソールで 1 が返ってくるのは、コンソールがメソッドの返値を表示するようになっているだけで、
println が表示しているわけではない。
> value ++ := method(v, self = self + 1)
とすれば何が起こっているかわかりやすいかも。
>>20
self はローカル領域オブジェクトのスロットなんじゃない?
変わる方がおかしいと思います。
22:20
08/02/05 03:41:13 .net
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なスロットだからか・・・
23:20
08/02/05 04:18:45 .net
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`)
URLリンク(www.iolanguage.com)
24:7
08/02/05 04:42:21 .net
>>23
リファレンス読むと、
call message previous name
で、出来そうだけど実際には previous が無い模様。
ソース読むと、それっぽい実装はあありました。
使えるようになれば、value ++ とか出来そうですね。
ただ、>>21の問題もあるので細工がいりそうですけど。
>検索しずらいです('A`)
以前のJavaScript使った妙なやつよりはマシな気がする。
25:20
08/02/05 05:25:05 .net
絶対にスマートにできる方法があるはず!と思ってソース見たら
Number.c の Number のデータ部分に代入しているのが(DATA(self) = しているところ)、
IoNumber_rawClone、IoNumber_newWithDouble_、IoNumber_copyFrom_ くらいしかなくて、
IoNumber_rawClone は、Clone用、
IoNumber_newWithDouble_は、内部のIoState用、
IoNumber_copyFrom_は、組み込まれてないww(たぶん内部用)
オワタ\(^o^)/
Number copyFrom メソッド実装汁!って本家に言っとくか、パッチなげるかだなw
26:20
08/02/05 05:26:36 .net
ああ、言い忘れた。一応、IoNumber_readFromStream にもあったから、Stream使ったらいけるかも
27:20
08/02/05 06:14:24 .net
連投スマソ。
>>26 のStream関連はまだ使われてないようでした orz
>>24
確かに call message previous で行ける!と思いましたが、
IoMessage_previous の中の実装が ifdef で外されている上に、
Ioのメソッドとして組み込まれてないですね。
28:デフォルトの名無しさん
08/02/05 13:10:12 .net
チラシの裏です。
Windows版でコンパイルしたくなって四苦八苦してたんですが、
downloadページで配布されている Io-2008-01-20.tar.gz が、
ShellExecuteのための shell32.lib がリンクされてねえとか、setenvがねえとか、
OS依存なエラーでwin32環境でコンパイルできなくて、どうなっとるねん!!1
エラーつぶしているうちに、Changelog 見たらWindows関連部分が Fix されてるっぽくて、
URLリンク(www.iolanguage.com)
↑見たら直ってて、俺の時間返せー!!! って感じです・・・ orz
とりあえず、git落として最新版ダウンロードしたお
29:デフォルトの名無しさん
08/02/05 18:18:29 .net
最近のバージョンって do( とかで改行すると、エラーで続きが入力できない。
30:19
08/02/06 01:22:28 .net
なるほど、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:デフォルトの名無しさん
08/02/06 01:48:38 .net
>>30
解決になっとらんでワロタ
32:7
08/02/06 03:16:47 .net
無理矢理解決してみた。
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
33:7
08/02/06 03:19:22 .net
>>32 書いてて気づいたんだけれど
1 + ; 2
は、 1 + 2 と解釈されるのね。
改行も同様につながってしまう。
そのせいで右辺のメッセージのごまかしが完全じゃない。
34:デフォルトの名無しさん
08/02/06 03:55:34 .net
俺も...と思ったけど、ダメだったorz
value := 0
value ++ := method(
call message setName("call")
call sender setSlot("self", self + 1)
)
(value ++) println //1
value println // 0
35:デフォルトの名無しさん
08/02/08 14:08:19 .net
++の話題、Smalltalkスレで聞いたら、同じような力技でしたw
アラン・ケイも認めた!Ruby>>>>>Smalltalk
スレリンク(tech板: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:デフォルトの名無しさん
08/02/08 14:19:36 .net
>>35
Io もレシーバが代入されているスロット名を知る手段があればできるんだけどね。
37:デフォルトの名無しさん
08/02/09 07:44:21 .net
つーか何が特徴なの?って物ばっかりだなこの手のは
++にしてもただの欠陥だし
無理矢理処理系の裏技使って解決しました!
ってまるっきりバカに見える
38:デフォルトの名無しさん
08/02/09 08:08:10 .net
> つーか何が特徴なの?って物ばっかりだなこの手のは
それは、あなたがバカなだけ
> ++にしてもただの欠陥だし
それは正しい
> 無理矢理処理系の裏技使って解決しました!
> ってまるっきりバカに見える
スマートではないのには同意。
しかし、どの言語にもスマートにできないものはある。
>>37の使っている言語にも苦手な処理はあるだろう?
39:デフォルトの名無しさん
08/02/09 08:23:45 .net
>>37 はスマートにディップスイッチでバイナリを直打ちしている
40:デフォルトの名無しさん
08/02/09 08:24:26 .net
なんだこいつ
41:デフォルトの名無しさん
08/02/09 08:32:58 .net
>>38
これはこれは
別に>>38を名指しでバカって言ったわけじゃないよ
リトマス試験紙にするつもりは無かったのだが
それと、欠陥なら直せば?
42:デフォルトの名無しさん
08/02/09 09:57:51 .net
欠陥ではなくセマンティックスの違いでしょう。
変数を箱のようなものと捉えるか、ラベルのようなものと捉えるか、という。
43:デフォルトの名無しさん
08/02/09 12:52:34 .net
マクロを導入すればいいのに。それで解決する問題だ。
44:デフォルトの名無しさん
08/02/09 13:12:13 .net
>>43
あーそーゆーことね。
45:デフォルトの名無しさん
08/02/09 17:38:49 .net
まー、Ioはマクロがなくてもこれだけできる!みたいなところはある
というかマクロも実装できそうだがどうか
46:デフォルトの名無しさん
08/02/10 15:55:43 .net
っていうか、
>>41
>それと、欠陥なら直せば?
あなたの使ってる言語はすぐ直せるの欠陥?
だいたいの場合、欠陥があったら言語のコアな部分を弄らないといけないと思うんだけど、そうじゃないのが現実なんだろうか...?
small talkの例がでたけど、ioとかこの辺の言語は、その欠陥をなんとかできそうな感じなんだよな。
だからみんな魅力を感じてるんじゃないかと。
47:デフォルトの名無しさん
08/02/10 16:08:46 .net
++関連見てきた。
スレリンク(tech板:559番)
なんかすげー理解が広がリングwww
これ見ると言語実装論みたいのが分かって面白いわ
あと、smalltalkの実装も面白い
48:デフォルトの名無しさん
08/02/19 23:56:58 .net
IoでObjective-Cの文法を導入する試み。
こういう「クレージー」なことができる言語は素晴らしい。
が、日常的に使いたいかどうかはまた別問題である。
URLリンク(www.rubyist.net)
49:デフォルトの名無しさん
08/03/05 08:42:59 .net
Rangeってどうすれば使えるのでしょうか?
何か準備がいるのかな。
Io 20070410
Io> Range
Exception: Object does not respond to 'Range'
---------
Object Range Command Line 2
50:デフォルトの名無しさん
08/03/05 09:11:29 .net
windowsなら、C:\usr\local に置かなきゃ駄目
ってやつ?
51:デフォルトの名無しさん
08/03/05 12:21:31 .net
winバイナリだと正規表現もないのな
52:デフォルトの名無しさん
08/03/05 20:49:16 .net
たしかに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:デフォルトの名無しさん
08/03/22 23:10:19 .net
数値と数値を連結すると文字列じゃなくて数値になるんですね。
Io> 123 .. 456
==> 123456
Io> 123 .. 456 +1
==> 123457
Io> 123 .. 456 /3
==> 123152
Io> 123+456/3
==> 275
54:デフォルトの名無しさん
08/03/23 16:34:50 .net
>>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:デフォルトの名無しさん
08/03/23 16:59:00 .net
対話モードの結果にダブルクオートが出ないから勘違いしたのかな
何でもかんでもオブジェクトをasStringしてつなぐ模様
56:デフォルトの名無しさん
08/03/23 17:50:07 .net
どうも失礼しました。計算したものが連結されてるだけなんですね。
57:デフォルトの名無しさん
08/04/18 01:11:19 .net
Ioで日本語プログラミング
Io でもおk - はてな使ったら負けだと思っている
URLリンク(d.hatena.ne.jp)
関連ページ
第20回 日本語でおk | WIRED VISION
URLリンク(wiredvision.jp)
Ruby もいいけど Smalltalk でも、おk。 - sumim’s smalltalking-tos
URLリンク(d.hatena.ne.jp)
inforno :: 日本語プログラミング言語Scala
URLリンク(inforno.net)
58:デフォルトの名無しさん
08/04/22 18:47:28 .net
DarwinportsでIoを入れたのですが >>49と同じ状態で詰まっています
どのようにすればいいのでしょうか?
59:デフォルトの名無しさん
08/04/22 23:02:02 .net
>>58
普通に落としてインストールする
60:デフォルトの名無しさん
08/04/27 09:17:59 .net
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:デフォルトの名無しさん
08/04/27 10:35:17 .net
HOME環境変数は設定されてる?
62:デフォルトの名無しさん
08/04/27 12:35:51 .net
できてます
また起動時に.io_historyがあるとすぐ落ちます
63:デフォルトの名無しさん
08/04/29 22:28:52 .net
インクリメント演算子実装してるが
++numなら簡単だが
num++はむずいな
64:デフォルトの名無しさん
08/04/30 17:25:44 .net
なぜ?
65:デフォルトの名無しさん
08/04/30 20:02:09 .net
前置だとmessage call argAt(0)でnumそのものを取得出来て
そっからメッセージの書き換えでnum = num + 1;っていうメッセージを作れるけど
後置だとすでにnumが評価されていてnumのメッセージそのものを取得できない。
66:65
08/04/30 20:27:07 .net
まあ俺がioに詳しくないだけかもしれんけど
67:デフォルトの名無しさん
08/05/01 19:43:40 .net
> ++num
ああ、その手があったか!
68:デフォルトの名無しさん
08/05/21 03:29:46 .net
Ioではオブジェクトリテラル({a:1,b:2}みたいなやつ)って書けないの?
着想を得たってあがってるNewtonScript、Luaにはあったのに。
69:デフォルトの名無しさん
08/05/26 01:27:36 .net
>>68
演算子や中括弧にもメソッド割り当てられるから簡単にできるよ
70:デフォルトの名無しさん
08/05/26 02:59:45 .net
>>69
中括弧に割り当てるのやめて、まじやめて
昔","演算子で泣かされたの重いだして涙目
71:デフォルトの名無しさん
08/05/26 07:59:19 .net
ホワイトスペースに割り当てられたら最強なのにね
72:デフォルトの名無しさん
08/05/26 08:26:26 .net
>>70
いや引数の数チェックしてやればいいだけの話だし
73:デフォルトの名無しさん
08/05/28 03:38:05 .net
>>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:デフォルトの名無しさん
08/05/31 04:53:46 .net
多分、>>68-73 みたいなFAQな流れを期待して、
Io sugeeeeとなるというのを想定しているのだろう
75:デフォルトの名無しさん
08/07/05 05:35:52 .net
ほしゅ
76:デフォルトの名無しさん
08/07/30 20:44:36 .net
対話型で初期化処理とかできないの?
77:デフォルトの名無しさん
08/08/04 20:26:33 .net
何をしたいの?
78:デフォルトの名無しさん
08/08/05 08:09:26 .net
対話型インタプリタとエディタを同時に使いたい
イメージ的には、
prolog系でのedit.
haskellの処理系の:editみたいなことがしたい
79:デフォルトの名無しさん
08/10/09 13:58:00 .net
hosyu
80:デフォルトの名無しさん
09/01/23 20:35:49 .net
以下のコードで、最後が 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:デフォルトの名無しさん
09/01/23 20:57:08 .net
typeを見るとObjectとFooになってるね
82:デフォルトの名無しさん
09/01/23 21:41:51 .net
>>81
レスありがとうございます。
l at(0) type println #=> "Object"
l at(1) type println #=> "Foo"
と、すると確かに違っていますね。
両方 Foo になっているべきに思えるんですが…うーん。
83:デフォルトの名無しさん
09/01/24 10:18:49 .net
仮想機会のバグだ
一期一会だ
84:デフォルトの名無しさん
09/01/25 22:05:49 .net
そうですね。バグですよね…。
レポートしておきます。
85:80
09/01/26 10:56:59 .net
バグではないそうです。
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:デフォルトの名無しさん
09/02/01 12:11:47 .net
Mac Portsにあったんでインストールしてみたものの「io」て打ちこんでも
コマンド見つからねーとか言うからport contentsしてみたらバイナリ名が「osxvm」だった。
87:デフォルトの名無しさん
09/02/07 11:16:46 .net
皆Windowsでioやる時って、公式のWindows版バイナリ使ってます?
それとも自分でビルドしたの使ってます?
最新tarをMingwでビルドしようと思ったら、
IoFile.cでsys/wait.h使ってるらしくビルド通らないんですよね・・・。
回避案・代案知ってる人教えてください。
88:デフォルトの名無しさん
09/02/07 18:40:55 .net
ヘッダファイル削除すりゃいいじゃん・・
89:デフォルトの名無しさん
09/02/07 20:42:07 .net
ヘッダファイルの削除というのは、私には少々難しそうなので
まずCygwin使って再度挑戦してみたいと思います。
ありがとうございました。
90:デフォルトの名無しさん
09/02/13 13:03:52 .net
↓Scalaスレで気になったことがあったんですが、IOだとこの辺の
優先順位の実装ってどんな風になってるんでしょうか?
プログラミング言語 Scala
スレリンク(tech板: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:デフォルトの名無しさん
09/02/13 13:04:54 .net
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:デフォルトの名無しさん
09/02/13 16:59:48 .net
URLリンク(f21.aaa.livedoor.jp)
マニュアルには
標準の演算子の優先順位は C 言語と同じ
ユーザー定義の演算子は常に左から右へ
とある
93:デフォルトの名無しさん
09/02/14 13:04:15 .net
なるほど・・・
> ユーザ定義の演算子 (標準の演算子名は使えない) は、常に左から右に動作する。 Us
「ユーザ定義」は「常に左から右」か
Scalaは最初の一文字できまるということなので、Scalaの方がよいかもだな・・・。
94:デフォルトの名無しさん
09/02/19 10:13:06 .net
「左から右へ」は演算子が左結合ってことじゃないの?
定義するときに優先度指定はできるよ
以下を参考に
URLリンク(subtech.g.hatena.ne.jp)
95:デフォルトの名無しさん
09/02/19 20:31:25 .net
文字列パースにおいてのみ機能するようだ
あと、
URLリンク(www.nabble.com)
対話環境とスクリプト環境では挙動が変わるらしい
96:87
09/03/18 19:56:06 .net
MinGWでビルドできました。
>>88さんが仰っていたように、
<sys/wait.h>をコメントアウトして
Line:238辺りにある
IONUMBER(WEXITSTATUS(exitStatus))
を
IONUMBER( ( (exitStatus >> 8) & 0xff) )
と書き直したらいけました。
今更ですが、ありがとうございました。
97:デフォルトの名無しさん
09/04/15 00:08:59 .net
ねーよw
98:デフォルトの名無しさん
09/08/13 08:04:09 .net
96です。
久しぶりにgithubから最新取ってきてコンパイルしてみましたが、
>>96の問題は修正されていました。良かった。
しかし今度はアドオンが上手く動かせていません。
使っている方いましたら、動作具合を教えて頂けないでしょうか?
99:デフォルトの名無しさん
09/12/01 01:16:47 .net
ろびー!
100:デフォルトの名無しさん
09/12/16 19:42:55 .net
公式サイトが・・・
github行くといくつかあるんだけどどれがいいんだ?
101:デフォルトの名無しさん
09/12/17 00:30:10 .net
>>100
公式がいいなら、公式のgithub。
最新版がいいなら、githubのnetworkタブクリックして日付が一番新しいそうなのをえらぶ
102:デフォルトの名無しさん
09/12/17 03:19:07 .net
子供のおもちゃ?
103:デフォルトの名無しさん
09/12/17 16:56:56 .net
>>101
今朝公式直ったみたいだな
公式から飛べるgithubで落とした
ありがとう
104:デフォルトの名無しさん
09/12/17 17:03:13 .net
ちなみに落としたのはdownload押してmaster選んだやつ
105:デフォルトの名無しさん
09/12/17 18:52:37 .net
余計なことは言わなくていい
106:デフォルトの名無しさん
09/12/18 12:42:50 .net
セックスしたときに下の前の穴に入れた、なんて明示する必要ないよな
107:デフォルトの名無しさん
09/12/18 18:46:25 .net
そんな小さいところに入るかよボケが
108:デフォルトの名無しさん
10/01/08 00:53:05 .net
久しぶりにいじってみたんですが、いつのまにか、++ が実装できるようになっていますね。
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:デフォルトの名無しさん
10/04/17 00:41:01 .net
この言語はいったいどういう用途に向いてるの?
110:デフォルトの名無しさん
10/05/30 02:19:56 .net
漏れら極悪非道のageブラザーズ!
今日もネタもないのにageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ∧_∧ age
(・∀・∩)(∩・∀・) age
(つ 丿 ( ⊂) age
( ヽノ ヽ/ ) age
し(_) (_)J
111:デフォルトの名無しさん
10/07/23 12:30:29 .net
githubに移行してる
stevedekorte's io at master - GitHub
URLリンク(github.com)
112:デフォルトの名無しさん
11/01/06 02:10:47 .net
113:デフォルトの名無しさん
11/03/11 01:26:24.60 .net
test
114:天使 ◆uL5esZLBSE
11/07/03 21:16:44.71 .net
>>108
ハアアァァアアアアアアアアアアアアアアア???
ゴミだな
うるさいゴミ
115:デフォルトの名無しさん
11/08/08 23:24:45.08 .net
URLリンク(www.amazon.co.jp)
116:デフォルトの名無しさん
11/08/09 00:07:08.88 .net
うへえ、翻訳出たのか
言語つまみぐい入門には最適だな
117:デフォルトの名無しさん
11/08/09 01:21:40.84 .net
ためしに貼り付けてみたんだけど、このスレ、見てる人いるんですね。
ちなみに件の本は、言語のつまみ食いに慣れている人にとっては
既に味見済みの言語ばかりかと思いますが、まとめて復習出来るという点で良書です。
しっかり読んでも、流し読みでも楽しい本だと思います。
# まだ読み終えていませんが。
一方、そうでない人にとっては、つまみ食いというほどお手軽に読める本ではないかもしれません。
でもIoスレを見ているような人には不要な心配ですね。
118:デフォルトの名無しさん
11/08/09 20:30:47.22 .net
うっほなんだこれ
こんな本出るんだ
買うしかねえ
119:デフォルトの名無しさん
11/08/20 08:46:07.96 .net
その本からきま☆すた
Luaはもういいや^^
120:デフォルトの名無しさん
11/08/20 19:29:25.25 .net
組み込み的にも言語的にもIoのほうがかなりいいと個人的に思ってる
致命的に流行ってないけど
121:デフォルトの名無しさん
11/08/21 07:02:58.90 .net
>> 120
問題は、
(1) 実行速度の遅さ
(2) addon に必要なライブラリを含めた場合のビルドの面倒さ
にあるように思う
(1) に関しては、他VM上で動くIo実装やIoに影響を受けたとしている言語に期待
(2) に関しては、ポータビリティがひとつの売りなので本家では対応しないだろうから、これまた他実装に期待
122:デフォルトの名無しさん
11/11/03 16:15:25.77 .net
よっこいしょ
123:デフォルトの名無しさん
11/11/03 17:41:04.67 .net
最近はこの言語どうなの
124:デフォルトの名無しさん
12/07/01 14:23:51.92 .net
いい言語だと思うんだがなあ
125:デフォルトの名無しさん
12/08/09 19:41:15.97 .net
_
|
,、‐''''´ ̄ ̄``''''-、,
/ \/ ::\
/ \/\/ ::::::ヽ
/ \/\/\/ :::::::ヽ
|ヽ/\・∀・ /\/ ::::::::| アキラメロンテスト
|./\/\/\/\ :::::::::|
ヽ \/\/\ :::::::::/
ヽ /\/\ ::::::::::/
\ /\ :::::::::::::::/
`''-、、,,:::::::::::,,、、‐''´
126:デフォルトの名無しさん
12/09/04 17:26:30.16 .net
Singletone := Object clone
Singleton clone := Singleton
とやってシングルトンプロトタイプを作る。
で、Singletonを継承した新しいプロトタイプを作る。
ExSingleton := Singleton clone
だめだ、頭がクラスベースになってる...orz
127:デフォルトの名無しさん
12/09/10 02:43:14.70 .net
Singletonって今まで使う機会がなかったんだけど、
試しにPythonで書いてみようとしたら、意外と面倒。
IoのSingletonってシンプルでカコイイ!
128:デフォルトの名無しさん
12/10/14 02:13:02.73 .net
ほす
129:デフォルトの名無しさん
12/11/12 01:45:12.89 .net
∩___∩
/ ノ \ ヽ
| ● ● |
彡 (_●_) ミ
/、 |∪| ,\ この鮭の切り身やるから帰れよ
/.| ヽノ | ヽ
,,/-―ー-、, --、 .|_,|
r-、,'''";;:;;:;::;;;;:;;::;:;:;;::;:;`'- /_,l,,__ )
|,,ノ;;:;r'" ̄ ゙̄^"`Y'-、;;;::;:;::;:;:;:;::;:|
.ヽ,′ ; `"";;;;;⌒゙')
´`゙'''''''''''‐-‐'"`‐-‐'"゛ `゙´
130:デフォルトの名無しさん
13/03/23 17:18:18.85 .net
まだおわらんよ
131:デフォルトの名無しさん
14/01/05 21:06:36.43 .net
「;:丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:_;:}
ト、;:;:;:丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:_;:;: --―;:''"´;:_」
{::ト、:;:;:;:;:;:` '' ー――;:;: '' "´;:;:;:;:;:;:;:;:;:;_ ,.ィ彡!
l::l 丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:_,. -r==ニ二三三 }
',:i r- 、、` ' ―― '' "´ ,ィ彡三三三三三/、
|| ヾ三) ,ィ三ミヲ `丶三三三三三ん',
lj ゙' ― '′ ヾ三三三ミ/ )}
| , --:.:、:.. .:.:.:.:..:.:... 三三三ツ ) /
| fr‐t-、ヽ. .:.:. '",二ニ、、 三三シ,rく /
l 丶‐三' ノ :ヾイ、弋::ノ`:.:. 三シ r'‐' /
', ゙'ー-‐' イ: : 丶三-‐'":.:.:.. 三! ,' /
', /.: ミツ/ー'′
', ,ィ/ : .:'^ヽ、.. jソ,ト、
',.:/.:.,{、: .: ,ノ 丶:::.. -、 ,ハ l、
ヽ .i:, ヽ、__, イ _`゙ヾ ノ / ,l l:ヽ
,.ゝ、ト=、ェェェェ=テアヽ } ,/ l l:.:(丶、
_r/ /:.`i ヽヾェェシ/ ゙' / ,' ,':.:.:`ヾヽ
_,,. -‐ '' " ´l. { {:.:.:.:', `.':==:'." / / /:.:.:.:.:.:.} ト―-- ,,_
一 '' "´ ',ヽ丶:.:.:ヽ、 ⌒ ,r'" / /:.:.:.:.:.:.:ノ,ノ | ``丶、
ヽ丶丶、:.:.ゝ、 ___,. イ / /:.:..:.:.:.,ィシ′ |
`丶、 ``"二ユ、_,.,____/__,/;: -‐ '" /
132:デフォルトの名無しさん
14/08/30 18:21:50.11 b6PiuM0V.net
だれかコレを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();
133:デフォルトの名無しさん
15/07/06 08:06:16.21 4KQhzWHv.net
7つの言語~を読んで興味を持ったのですが、Ioの書籍はありますでしょうか?
134:デフォルトの名無しさん
15/10/22 21:11:26.41 Fsr7aN41.net
>>2
>>1がネタ振りできなくても残ってるじゃないか
デタラメ言いやがって
お前はろくになにもせず歳をとってしまったことだろう
135:デフォルトの名無しさん
15/11/28 16:49:28.42 jpi/hJbu.net
保守
136:デフォルトの名無しさん
15/11/29 03:52:42.56 KDiY7g/+.net
smalltalkあるいはjavascriptは、
プロトタイプベースのオブジェクト指向言語として、
似ていますでしょうか?
ioライクなインタプリタを作っていますが、ioの情報が少ないため、
他に参照できる情報がないか探していました。
137:デフォルトの名無しさん
17/01/05 15:39:39.05 4LtaZ0DL.net
保守