◎正当な理由による書き込みの削除について: 生島英之とみられる方へ:
Io Language->画像>1枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1201100624/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
なんでそんな伸びそうも無いものを。
>1 にネタ振りが出来ないようなら早晩落ちるぞ。
言語そのものは知らんが実装はガベコレだけ読んだな。
ioの構文、メッセージ機構はすごく興味あるんだけど
バインディング機構がヘボいから萌えない…
特殊形式に見えるものが普通のメソッドだったりするからメタプログラミングとかは結構できそうだな
文法もわりとわかりやすいな
このインターネッツ時代にわざわざ検索しにくい名前をつけんなと
>>5 それは良いけど、これはいただけない気が…
Range
v := "before"
f := method(arg, arg)
v println #=> before
0 to(10) foreach(v, v println) #=> 012345678910
v println #=> 10
>>6 io-language
iolanguage
で検索するよろし
v := "before"
が無くても同じ、これは嫌だな
Rubyのは1.9で直ってるんだよね
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を取り出したいのですが・・・
> io-languageの話題はここでいいのかな・・・
>
> まあいいや
コピペ失敗 orz ここは読み飛ばしてください
unko getSlot("puripuri")
ってこと?
>>14 それだ!!!!1
ありがとうございました。
文字列で渡すのがなんか新鮮に感じた
>>7 v := "before"
f := method(arg, arg)
v println #=> before
Sandbox doSandboxString("Range; 0 to(10) foreach(v, v println)")
v println
スマートとは言い難いけど、Sandboxを使ってとりあえず回避。
>>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 メソッドの設定は省ける。
↓のみてて思ったんだけど、++とか--みたいな演算子って直接呼べないの?
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
>>19 selfに代入しても、元のが変わらんっぽい
Io> value := 0
==> 0
Io> value test := method(self = "banzai!")
==> method(
self = "banzai!"
)
Io> value test
==> banzai!
Io> value
==> 1
>>19 > value ++ println
これは、value ++(println) となって println は引数として扱われる。
んで、メソッドの側で仮引数を指定していないのでなにも起こらない。
コンソールで 1 が返ってくるのは、コンソールがメソッドの返値を表示するようになっているだけで、
println が表示しているわけではない。
> value ++ := method(v, self = self + 1)
とすれば何が起こっているかわかりやすいかも。
>>20 self はローカル領域オブジェクトのスロットなんじゃない?
変わる方がおかしいと思います。
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なスロットだからか・・・
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 >>23 リファレンス読むと、
call message previous name
で、出来そうだけど実際には previous が無い模様。
ソース読むと、それっぽい実装はあありました。
使えるようになれば、value ++ とか出来そうですね。
ただ、
>>21の問題もあるので細工がいりそうですけど。
>検索しずらいです('A`)
以前のJavaScript使った妙なやつよりはマシな気がする。
絶対にスマートにできる方法があるはず!と思ってソース見たら
Number.c の Number のデータ部分に代入しているのが(DATA(self) = しているところ)、
IoNumber_rawClone、IoNumber_newWithDouble_、IoNumber_copyFrom_ くらいしかなくて、
IoNumber_rawClone は、Clone用、
IoNumber_newWithDouble_は、内部のIoState用、
IoNumber_copyFrom_は、組み込まれてないww(たぶん内部用)
オワタ\(^o^)/
Number copyFrom メソッド実装汁!って本家に言っとくか、パッチなげるかだなw
ああ、言い忘れた。一応、IoNumber_readFromStream にもあったから、Stream使ったらいけるかも
連投スマソ。
>>26 のStream関連はまだ使われてないようでした orz
>>24 確かに call message previous で行ける!と思いましたが、
IoMessage_previous の中の実装が ifdef で外されている上に、
Ioのメソッドとして組み込まれてないですね。
チラシの裏です。
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落として最新版ダウンロードしたお
最近のバージョンって do( とかで改行すると、エラーで続きが入力できない。
なるほど、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
無理矢理解決してみた。
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
>>32 書いてて気づいたんだけれど
1 + ; 2
は、 1 + 2 と解釈されるのね。
改行も同様につながってしまう。
そのせいで右辺のメッセージのごまかしが完全じゃない。
俺も...と思ったけど、ダメだったorz
value := 0
value ++ := method(
call message setName("call")
call sender setSlot("self", self + 1)
)
(value ++) println //1
value println // 0
++の話題、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)) " >>35 Io もレシーバが代入されているスロット名を知る手段があればできるんだけどね。
つーか何が特徴なの?って物ばっかりだなこの手のは
++にしてもただの欠陥だし
無理矢理処理系の裏技使って解決しました!
ってまるっきりバカに見える
> つーか何が特徴なの?って物ばっかりだなこの手のは
それは、あなたがバカなだけ
> ++にしてもただの欠陥だし
それは正しい
> 無理矢理処理系の裏技使って解決しました!
> ってまるっきりバカに見える
スマートではないのには同意。
しかし、どの言語にもスマートにできないものはある。
>>37の使っている言語にも苦手な処理はあるだろう?
>>37 はスマートにディップスイッチでバイナリを直打ちしている
>>38 これはこれは
別に
>>38を名指しでバカって言ったわけじゃないよ
リトマス試験紙にするつもりは無かったのだが
それと、欠陥なら直せば?
欠陥ではなくセマンティックスの違いでしょう。
変数を箱のようなものと捉えるか、ラベルのようなものと捉えるか、という。
マクロを導入すればいいのに。それで解決する問題だ。
まー、Ioはマクロがなくてもこれだけできる!みたいなところはある
というかマクロも実装できそうだがどうか
っていうか、
>>41 >それと、欠陥なら直せば?
あなたの使ってる言語はすぐ直せるの欠陥?
だいたいの場合、欠陥があったら言語のコアな部分を弄らないといけないと思うんだけど、そうじゃないのが現実なんだろうか...?
small talkの例がでたけど、ioとかこの辺の言語は、その欠陥をなんとかできそうな感じなんだよな。
だからみんな魅力を感じてるんじゃないかと。
++関連見てきた。
http://pc11.2ch.net/test/read.cgi/tech/1188997302/559 なんかすげー理解が広がリングwww
これ見ると言語実装論みたいのが分かって面白いわ
あと、smalltalkの実装も面白い
IoでObjective-Cの文法を導入する試み。
こういう「クレージー」なことができる言語は素晴らしい。
が、日常的に使いたいかどうかはまた別問題である。
http://www.rubyist.net/~matz/20080216.html#p01
Rangeってどうすれば使えるのでしょうか?
何か準備がいるのかな。
Io 20070410
Io> Range
Exception: Object does not respond to 'Range'
---------
Object Range Command Line 2
windowsなら、C:\usr\local に置かなきゃ駄目
ってやつ?
たしかに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
数値と数値を連結すると文字列じゃなくて数値になるんですね。
Io> 123 .. 456
==> 123456
Io> 123 .. 456 +1
==> 123457
Io> 123 .. 456 /3
==> 123152
Io> 123+456/3
==> 275
>>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
対話モードの結果にダブルクオートが出ないから勘違いしたのかな
何でもかんでもオブジェクトをasStringしてつなぐ模様
どうも失礼しました。計算したものが連結されてるだけなんですね。
DarwinportsでIoを入れたのですが
>>49と同じ状態で詰まっています
どのようにすればいいのでしょうか?
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
こんなのが出て正常に終了できない
できてます
また起動時に.io_historyがあるとすぐ落ちます
インクリメント演算子実装してるが
++numなら簡単だが
num++はむずいな
前置だとmessage call argAt(0)でnumそのものを取得出来て
そっからメッセージの書き換えでnum = num + 1;っていうメッセージを作れるけど
後置だとすでにnumが評価されていてnumのメッセージそのものを取得できない。
Ioではオブジェクトリテラル({a:1,b:2}みたいなやつ)って書けないの?
着想を得たってあがってるNewtonScript、Luaにはあったのに。
>>68 演算子や中括弧にもメソッド割り当てられるから簡単にできるよ
>>69 中括弧に割り当てるのやめて、まじやめて
昔","演算子で泣かされたの重いだして涙目
>>70 いや引数の数チェックしてやればいいだけの話だし
>>69 すげえ、本当に簡単に出来るね。
List,Mapでの[]といい、なんで標準で定義してないんだろう。
{} := method(
obj := Object clone
call message arguments foreach(i,obj doMessage(i setName("setSlot")))
obj
)
{a=1,b=1+1} println
多分、
>>68-73 みたいなFAQな流れを期待して、
Io sugeeeeとなるというのを想定しているのだろう
対話型インタプリタとエディタを同時に使いたい
イメージ的には、
prolog系でのedit.
haskellの処理系の:editみたいなことがしたい
以下のコードで、最後が 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 レスありがとうございます。
l at(0) type println #=> "Object"
l at(1) type println #=> "Foo"
と、すると確かに違っていますね。
両方 Foo になっているべきに思えるんですが…うーん。
そうですね。バグですよね…。
レポートしておきます。
バグではないそうです。
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
)
Mac Portsにあったんでインストールしてみたものの「io」て打ちこんでも
コマンド見つからねーとか言うからport contentsしてみたらバイナリ名が「osxvm」だった。
皆Windowsでioやる時って、公式のWindows版バイナリ使ってます?
それとも自分でビルドしたの使ってます?
最新tarをMingwでビルドしようと思ったら、
IoFile.cでsys/wait.h使ってるらしくビルド通らないんですよね・・・。
回避案・代案知ってる人教えてください。
ヘッダファイルの削除というのは、私には少々難しそうなので
まずCygwin使って再度挑戦してみたいと思います。
ありがとうございました。
↓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))
と解釈される。
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コマンドからだったらちゃんと動くとか)
わからんことだらけなんだけど、しばらく弄ってみることにする
なるほど・・・
> ユーザ定義の演算子 (標準の演算子名は使えない) は、常に左から右に動作する。 Us
「ユーザ定義」は「常に左から右」か
Scalaは最初の一文字できまるということなので、Scalaの方がよいかもだな・・・。
MinGWでビルドできました。
>>88さんが仰っていたように、
<sys/wait.h>をコメントアウトして
Line:238辺りにある
IONUMBER(WEXITSTATUS(exitStatus))
を
IONUMBER( ( (exitStatus >> 8) & 0xff) )
と書き直したらいけました。
今更ですが、ありがとうございました。
96です。
久しぶりにgithubから最新取ってきてコンパイルしてみましたが、
>>96の問題は修正されていました。良かった。
しかし今度はアドオンが上手く動かせていません。
使っている方いましたら、動作具合を教えて頂けないでしょうか?
公式サイトが・・・
github行くといくつかあるんだけどどれがいいんだ?
>>100 公式がいいなら、公式のgithub。
最新版がいいなら、githubのnetworkタブクリックして日付が一番新しいそうなのをえらぶ
>>101 今朝公式直ったみたいだな
公式から飛べるgithubで落とした
ありがとう
ちなみに落としたのはdownload押してmaster選んだやつ
セックスしたときに下の前の穴に入れた、なんて明示する必要ないよな
久しぶりにいじってみたんですが、いつのまにか、++ が実装できるようになっていますね。
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
漏れら極悪非道のageブラザーズ!
今日もネタもないのにageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ∧_∧ age
(・∀・∩)(∩・∀・) age
(つ 丿 ( ⊂) age
( ヽノ ヽ/ ) age
し(_) (_)J
githubに移行してる
stevedekorte's io at master - GitHub
http://github.com/stevedekorte/io >>108 ハアアァァアアアアアアアアアアアアアアア???
ゴミだな
うるさいゴミ
うへえ、翻訳出たのか
言語つまみぐい入門には最適だな
ためしに貼り付けてみたんだけど、このスレ、見てる人いるんですね。
ちなみに件の本は、言語のつまみ食いに慣れている人にとっては
既に味見済みの言語ばかりかと思いますが、まとめて復習出来るという点で良書です。
しっかり読んでも、流し読みでも楽しい本だと思います。
# まだ読み終えていませんが。
一方、そうでない人にとっては、つまみ食いというほどお手軽に読める本ではないかもしれません。
でもIoスレを見ているような人には不要な心配ですね。
組み込み的にも言語的にもIoのほうがかなりいいと個人的に思ってる
致命的に流行ってないけど
>> 120
問題は、
(1) 実行速度の遅さ
(2) addon に必要なライブラリを含めた場合のビルドの面倒さ
にあるように思う
(1) に関しては、他VM上で動くIo実装やIoに影響を受けたとしている言語に期待
(2) に関しては、ポータビリティがひとつの売りなので本家では対応しないだろうから、これまた他実装に期待
_
|
,、‐''''´ ̄ ̄``''''-、,
/ \/ ::\
/ \/\/ ::::::ヽ
/ \/\/\/ :::::::ヽ
|ヽ/\・∀・ /\/ ::::::::| アキラメロンテスト
|./\/\/\/\ :::::::::|
ヽ \/\/\ :::::::::/
ヽ /\/\ ::::::::::/
\ /\ :::::::::::::::/
`''-、、,,:::::::::::,,、、‐''´
Singletone := Object clone
Singleton clone := Singleton
とやってシングルトンプロトタイプを作る。
で、Singletonを継承した新しいプロトタイプを作る。
ExSingleton := Singleton clone
だめだ、頭がクラスベースになってる...orz
Singletonって今まで使う機会がなかったんだけど、
試しにPythonで書いてみようとしたら、意外と面倒。
IoのSingletonってシンプルでカコイイ!
∩___∩
/ ノ \ ヽ
| ● ● |
彡 (_●_) ミ
/、 |∪| ,\ この鮭の切り身やるから帰れよ
/.| ヽノ | ヽ
,,/-―ー-、, --、 .|_,|
r-、,'''";;:;;:;::;;;;:;;::;:;:;;::;:;`'- /_,l,,__ )
|,,ノ;;:;r'" ̄ ゙̄^"`Y'-、;;;::;:;::;:;:;:;::;:|
.ヽ,′ ; `"";;;;;⌒゙')
´`゙'''''''''''‐-‐'"`‐-‐'"゛ `゙´
「;:丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:_;:}
ト、;:;:;:丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:_;:;: --―;:''"´;:_」
{::ト、:;:;:;:;:;:` '' ー―――;:;: '' "´;:;:;:;:;:;:;:;:;:;_ ,.ィ彡!
l::l 丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:_,. -r==ニ二三三 }
',:i r- 、、` ' ―――― '' "´ ,ィ彡三三三三三/、
|| ヾ三) ,ィ三ミヲ `丶三三三三三ん',
lj ゙' ― '′ ヾ三三三ミ/ )}
| , --:.:、:.. .:.:.:.:..:.:... 三三三ツ ) /
| fr‐t-、ヽ. .:.:. '",二ニ、、 三三シ,rく /
l 丶‐三' ノ :ヾイ、弋::ノ`:.:. 三シ r'‐' /
', ゙'ー-‐' イ: : 丶三-‐'":.:.:.. 三! ,' /
', /.: ミツ/ー'′
', ,ィ/ : .:'^ヽ、.. jソ,ト、
',.:/.:.,{、: .: ,ノ 丶:::.. -、 ,ハ l、
ヽ .i:, ヽ、__, イ _`゙ヾ ノ / ,l l:ヽ
,.ゝ、ト=、ェェェェ=テアヽ } ,/ l l:.:(丶、
_r/ /:.`i ヽヾェェシ/ ゙' / ,' ,':.:.:`ヾヽ
_,,. -‐ '' " ´l. { {:.:.:.:', `.':==:'." / / /:.:.:.:.:.:.} ト―-- ,,_
一 '' "´ ',ヽ丶:.:.:ヽ、 ⌒ ,r'" / /:.:.:.:.:.:.:ノ,ノ | ``丶、
ヽ丶丶、:.:.ゝ、 ___,. イ / /:.:..:.:.:.,ィシ′ |
`丶、 ``"二ユ、_,.,____/__,/;: -‐ '" /
だれかコレを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();
7つの言語〜を読んで興味を持ったのですが、Ioの書籍はありますでしょうか?
>>2 >>1がネタ振りできなくても残ってるじゃないか
デタラメ言いやがって
お前はろくになにもせず歳をとってしまったことだろう
smalltalkあるいはjavascriptは、
プロトタイプベースのオブジェクト指向言語として、
似ていますでしょうか?
ioライクなインタプリタを作っていますが、ioの情報が少ないため、
他に参照できる情報がないか探していました。
lud20241219191606このスレへの固定リンク: http://5chb.net/r/tech/1201100624/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
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
|