X



Io Language
■ このスレッドは過去ログ倉庫に格納されています
0002デフォルトの名無しさん
垢版 |
2008/01/24(木) 07:51:21
なんでそんな伸びそうも無いものを。
>1 にネタ振りが出来ないようなら早晩落ちるぞ。
0004デフォルトの名無しさん
垢版 |
2008/01/24(木) 13:20:05
ioの構文、メッセージ機構はすごく興味あるんだけど
バインディング機構がヘボいから萌えない…
0005デフォルトの名無しさん
垢版 |
2008/01/24(木) 22:28:07
特殊形式に見えるものが普通のメソッドだったりするからメタプログラミングとかは結構できそうだな
文法もわりとわかりやすいな
0007デフォルトの名無しさん
垢版 |
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
0012デフォルトの名無しさん
垢版 |
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を取り出したいのですが・・・
0013デフォルトの名無しさん
垢版 |
2008/02/03(日) 10:57:55
> io-languageの話題はここでいいのかな・・・
>
> まあいいや

コピペ失敗 orz ここは読み飛ばしてください
0017デフォルトの名無しさん
垢版 |
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を使ってとりあえず回避。
00187
垢版 |
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 メソッドの設定は省ける。
0019デフォルトの名無しさん
垢版 |
2008/02/05(火) 02:38:43
↓のみてて思ったんだけど、++とか--みたいな演算子って直接呼べないの?
ttp://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
0020デフォルトの名無しさん
垢版 |
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
00217
垢版 |
2008/02/05(火) 03:24:01
>>19
> value ++ println
これは、value ++(println) となって println は引数として扱われる。
んで、メソッドの側で仮引数を指定していないのでなにも起こらない。
コンソールで 1 が返ってくるのは、コンソールがメソッドの返値を表示するようになっているだけで、
println が表示しているわけではない。
> value ++ := method(v, self = self + 1)
とすれば何が起こっているかわかりやすいかも。

>>20
self はローカル領域オブジェクトのスロットなんじゃない?
変わる方がおかしいと思います。
002220
垢版 |
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なスロットだからか・・・
002320
垢版 |
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
00247
垢版 |
2008/02/05(火) 04:42:21
>>23
リファレンス読むと、
  call message previous name
で、出来そうだけど実際には previous が無い模様。
ソース読むと、それっぽい実装はあありました。
使えるようになれば、value ++ とか出来そうですね。
ただ、>>21の問題もあるので細工がいりそうですけど。

>検索しずらいです('A`)
以前のJavaScript使った妙なやつよりはマシな気がする。
002520
垢版 |
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
002620
垢版 |
2008/02/05(火) 05:26:36
ああ、言い忘れた。一応、IoNumber_readFromStream にもあったから、Stream使ったらいけるかも
002720
垢版 |
2008/02/05(火) 06:14:24
連投スマソ。

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

>>24
確かに call message previous で行ける!と思いましたが、
IoMessage_previous の中の実装が ifdef で外されている上に、
Ioのメソッドとして組み込まれてないですね。
0028デフォルトの名無しさん
垢版 |
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落として最新版ダウンロードしたお
003019
垢版 |
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
00327
垢版 |
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
00337
垢版 |
2008/02/06(水) 03:19:22
>>32 書いてて気づいたんだけれど
1 + ; 2
は、 1 + 2 と解釈されるのね。
改行も同様につながってしまう。
そのせいで右辺のメッセージのごまかしが完全じゃない。
0034デフォルトの名無しさん
垢版 |
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
0035デフォルトの名無しさん
垢版 |
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)) "
0037デフォルトの名無しさん
垢版 |
2008/02/09(土) 07:44:21
つーか何が特徴なの?って物ばっかりだなこの手のは
++にしてもただの欠陥だし
無理矢理処理系の裏技使って解決しました!
ってまるっきりバカに見える
0038デフォルトの名無しさん
垢版 |
2008/02/09(土) 08:08:10
> つーか何が特徴なの?って物ばっかりだなこの手のは

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

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

それは正しい

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

スマートではないのには同意。
しかし、どの言語にもスマートにできないものはある。
>>37の使っている言語にも苦手な処理はあるだろう?
0041デフォルトの名無しさん
垢版 |
2008/02/09(土) 08:32:58
>>38
これはこれは
別に>>38を名指しでバカって言ったわけじゃないよ
リトマス試験紙にするつもりは無かったのだが

それと、欠陥なら直せば?
0042デフォルトの名無しさん
垢版 |
2008/02/09(土) 09:57:51
欠陥ではなくセマンティックスの違いでしょう。
変数を箱のようなものと捉えるか、ラベルのようなものと捉えるか、という。
0045デフォルトの名無しさん
垢版 |
2008/02/09(土) 17:38:49
まー、Ioはマクロがなくてもこれだけできる!みたいなところはある
というかマクロも実装できそうだがどうか
0046デフォルトの名無しさん
垢版 |
2008/02/10(日) 15:55:43
っていうか、

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

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

small talkの例がでたけど、ioとかこの辺の言語は、その欠陥をなんとかできそうな感じなんだよな。
だからみんな魅力を感じてるんじゃないかと。
0048デフォルトの名無しさん
垢版 |
2008/02/19(火) 23:56:58
IoでObjective-Cの文法を導入する試み。

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

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

Exception: Object does not respond to 'Range'
---------
Object Range Command Line 2
0051デフォルトの名無しさん
垢版 |
2008/03/05(水) 12:21:31
winバイナリだと正規表現もないのな
0052デフォルトの名無しさん
垢版 |
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
0053デフォルトの名無しさん
垢版 |
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
0054デフォルトの名無しさん
垢版 |
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        
0055デフォルトの名無しさん
垢版 |
2008/03/23(日) 16:59:00
対話モードの結果にダブルクオートが出ないから勘違いしたのかな
何でもかんでもオブジェクトをasStringしてつなぐ模様
0057デフォルトの名無しさん
垢版 |
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
0060デフォルトの名無しさん
垢版 |
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

こんなのが出て正常に終了できない
0061デフォルトの名無しさん
垢版 |
2008/04/27(日) 10:35:17
HOME環境変数は設定されてる?
0065デフォルトの名無しさん
垢版 |
2008/04/30(水) 20:02:09
前置だとmessage call argAt(0)でnumそのものを取得出来て
そっからメッセージの書き換えでnum = num + 1;っていうメッセージを作れるけど
後置だとすでにnumが評価されていてnumのメッセージそのものを取得できない。
006665
垢版 |
2008/04/30(水) 20:27:07
まあ俺がioに詳しくないだけかもしれんけど
0067デフォルトの名無しさん
垢版 |
2008/05/01(木) 19:43:40
> ++num
ああ、その手があったか!
0068デフォルトの名無しさん
垢版 |
2008/05/21(水) 03:29:46
Ioではオブジェクトリテラル({a:1,b:2}みたいなやつ)って書けないの?
着想を得たってあがってるNewtonScript、Luaにはあったのに。
0073デフォルトの名無しさん
垢版 |
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
0074デフォルトの名無しさん
垢版 |
2008/05/31(土) 04:53:46
多分、>>68-73 みたいなFAQな流れを期待して、
Io sugeeeeとなるというのを想定しているのだろう
0075デフォルトの名無しさん
垢版 |
2008/07/05(土) 05:35:52
ほしゅ
0076デフォルトの名無しさん
垢版 |
2008/07/30(水) 20:44:36
対話型で初期化処理とかできないの?
0078デフォルトの名無しさん
垢版 |
2008/08/05(火) 08:09:26
対話型インタプリタとエディタを同時に使いたい

イメージ的には、
prolog系でのedit.
haskellの処理系の:editみたいなことがしたい
0079デフォルトの名無しさん
垢版 |
2008/10/09(木) 13:58:00
hosyu
0080デフォルトの名無しさん
垢版 |
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 !!
0082デフォルトの名無しさん
垢版 |
2009/01/23(金) 21:41:51
>>81
レスありがとうございます。

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

と、すると確かに違っていますね。
両方 Foo になっているべきに思えるんですが…うーん。
008580
垢版 |
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
)

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

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

回避案・代案知ってる人教えてください。
0089デフォルトの名無しさん
垢版 |
2009/02/07(土) 20:42:07
ヘッダファイルの削除というのは、私には少々難しそうなので
まずCygwin使って再度挑戦してみたいと思います。
ありがとうございました。
0090デフォルトの名無しさん
垢版 |
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))

と解釈される。
0091デフォルトの名無しさん
垢版 |
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コマンドからだったらちゃんと動くとか)
わからんことだらけなんだけど、しばらく弄ってみることにする
0092デフォルトの名無しさん
垢版 |
2009/02/13(金) 16:59:48
ttp://f21.aaa.livedoor.jp/~kizz/prog/io/_docs/IoProgrammingGuide_ja_only.html
マニュアルには
標準の演算子の優先順位は C 言語と同じ
ユーザー定義の演算子は常に左から右へ
とある
0093デフォルトの名無しさん
垢版 |
2009/02/14(土) 13:04:15
なるほど・・・

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

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

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

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

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

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

しかし今度はアドオンが上手く動かせていません。
使っている方いましたら、動作具合を教えて頂けないでしょうか?
0101デフォルトの名無しさん
垢版 |
2009/12/17(木) 00:30:10
>>100
公式がいいなら、公式のgithub。
最新版がいいなら、githubのnetworkタブクリックして日付が一番新しいそうなのをえらぶ
0106デフォルトの名無しさん
垢版 |
2009/12/18(金) 12:42:50
セックスしたときに下の前の穴に入れた、なんて明示する必要ないよな
0108デフォルトの名無しさん
垢版 |
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
0110デフォルトの名無しさん
垢版 |
2010/05/30(日) 02:19:56
漏れら極悪非道のageブラザーズ!
今日もネタもないのにageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧   ∧_∧    age
 (・∀・∩)(∩・∀・)    age
 (つ  丿 (   ⊂) age
  ( ヽノ   ヽ/  )   age
  し(_)   (_)J
0112デフォルトの名無しさん
垢版 |
2011/01/06(木) 02:10:47
0113デフォルトの名無しさん
垢版 |
2011/03/11(金) 01:26:24.60
test
0114天使 ◆uL5esZLBSE
垢版 |
2011/07/03(日) 21:16:44.71
>>108
ハアアァァアアアアアアアアアアアアアアア???
ゴミだな
うるさいゴミ
0117デフォルトの名無しさん
垢版 |
2011/08/09(火) 01:21:40.84
ためしに貼り付けてみたんだけど、このスレ、見てる人いるんですね。

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

一方、そうでない人にとっては、つまみ食いというほどお手軽に読める本ではないかもしれません。
でもIoスレを見ているような人には不要な心配ですね。
0120デフォルトの名無しさん
垢版 |
2011/08/20(土) 19:29:25.25
組み込み的にも言語的にもIoのほうがかなりいいと個人的に思ってる
致命的に流行ってないけど
0121デフォルトの名無しさん
垢版 |
2011/08/21(日) 07:02:58.90
>> 120

問題は、

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

にあるように思う

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

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

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

ExSingleton := Singleton clone

だめだ、頭がクラスベースになってる...orz
0127デフォルトの名無しさん
垢版 |
2012/09/10(月) 02:43:14.70
Singletonって今まで使う機会がなかったんだけど、
試しにPythonで書いてみようとしたら、意外と面倒。
IoのSingletonってシンプルでカコイイ!
0128デフォルトの名無しさん
垢版 |
2012/10/14(日) 02:13:02.73
ほす
0129デフォルトの名無しさん
垢版 |
2012/11/12(月) 01:45:12.89
              ∩___∩
            /  ノ   \  ヽ
            | ●    ● |
          彡   (_●_)    ミ
           /、   |∪|    ,\   この鮭の切り身やるから帰れよ
          /.|     ヽノ    | ヽ
       ,,/-―ー-、, --、   .|_,|
    r-、,'''";;:;;:;::;;;;:;;::;:;:;;::;:;`'- /_,l,,__ )
   |,,ノ;;:;r'" ̄ ゙̄^"`Y'-、;;;::;:;::;:;:;:;::;:|
    .ヽ,′       ;   `"";;;;;⌒゙')
     ´`゙'''''''''''‐-‐'"`‐-‐'"゛  `゙´
0130デフォルトの名無しさん
垢版 |
2013/03/23(土) 17:18:18.85
まだおわらんよ
0131デフォルトの名無しさん
垢版 |
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'"    / /:.:.:.:.:.:.:ノ,ノ |      ``丶、
            ヽ丶丶、:.:.ゝ、 ___,. イ     / /:.:..:.:.:.,ィシ′ |
             `丶、 ``"二ユ、_,.,____/__,/;: -‐ '"  /
0132デフォルトの名無しさん
垢版 |
2014/08/27(水) 20:21:19.99ID:sI4/2wV1
何か動きはないかな?
0133デフォルトの名無しさん
垢版 |
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();
0134デフォルトの名無しさん
垢版 |
2015/07/06(月) 08:06:16.21ID:4KQhzWHv
7つの言語〜を読んで興味を持ったのですが、Ioの書籍はありますでしょうか?
0135デフォルトの名無しさん
垢版 |
2015/10/22(木) 21:11:26.41ID:Fsr7aN41
>>2
>>1がネタ振りできなくても残ってるじゃないか
デタラメ言いやがって
お前はろくになにもせず歳をとってしまったことだろう
0137デフォルトの名無しさん
垢版 |
2015/11/29(日) 03:52:42.56ID:KDiY7g/+
smalltalkあるいはjavascriptは、
プロトタイプベースのオブジェクト指向言語として、
似ていますでしょうか?
ioライクなインタプリタを作っていますが、ioの情報が少ないため、
他に参照できる情報がないか探していました。
0138デフォルトの名無しさん
垢版 |
2017/01/05(木) 15:39:39.05ID:4LtaZ0DL
保守
■ このスレッドは過去ログ倉庫に格納されています

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