ioke
スタートからの距離がdであることが決定している点集合P(d) = [p1, p2, ... , pn]に隣接し、かつ距離が決定していない点集合をP(d+1)として決定する…というのを再帰的にやると、距離のマップが出るよね。このとき、壁は初期状態から距離∞(無限大)を持つと…
さあ、Yコンビネータ(不動点演算子)を使おう! - よくわかりませんを写経してみようとしたけど、できてないというメモ。 Z = fn(f, fn(x, fn(m, f call(x call(x)) call(m))) call(fn(x, fn(m, f call(x call(x)) call(m))))) F_for_fib = fn(f, fn(n, if(n …
Z = fn(f, fn(x, fn(m, f call(x call(x)) call(m))) call(fn(x, fn(m, f call(x call(x)) call(m))))) Z(fn(f, fn(n, if(n < 2, n, f(n-1) + f(n-2))))) call(7) ; +> 13受け売りです。フィボナッチ。 callじゃなく、直接()で呼べれば楽になるだろーけど、…
(1...1000) select(n, (n % 3 == 0) or (n % 5 == 0)) reduce(+)正直、こんなにシンプルに出来るとは思わなんだ。 (1...1000) map(n, if((n % 3 == 0) or (n % 5 == 0), n, 0)) reduce(+)なんとなく、こうも書ける。map-reduceと直接関係あるかは、知らん。
Ola Biniコメント記念に、Ioke GuideのMacro部分を(とりあえず)和訳。ぎこちないのは俺クオリティ。 http://www19.atwiki.jp/katzchang/pages/15.htmlで、全訳中です。お客様のなかで、協力して頂ける方はいらっしゃいませんかぁー? Macros - マクロ Ioke…
Iokeのハイライトに対応して欲しい。 emacsのハイライト定義はある…っぽいんだけど、そういうので大丈夫なんでしょうか?と、「ソースコードを色付けして記述する(シンタックス・ハイライト) - はてなダイアリーのヘルプ」にTB送ってみる。
先日のHokuriku.rbで、ノベルティの抽選がビンゴゲームだったんだが、 irb 上で rand(76) *1を繰り返し実行してみる方式だと、抽選で進むにつれて重複が多くなるという課題と、既に出た数字のマークを手動でしなければならなかったという課題があり、それに…
@IokeGround fib = method(n, if(n == 0, 0, if(n == 1, 1, fib(n-1) + fib(n-2)))). fib(10) http://twitter.com/katzchang/status/2450789054 とすると、 @katzchang 55 http://twitter.com/IokeGround/status/2450791565 こう返す。つまり、Twitterで@メ…
コマンド"ioke"から呼ばれるはずのioke.lang.Mainをベースに、とりあえずJavaからIokeを使うテスツ。 r.evaluateString("hogehoge"); で、IokeのRuntimeにメッセージを送る。ioke.lang.Runtimeには他にも、ファイルを受け付けるものがあったりStreamを受け付…
階層深いなぁ。大丈夫なんかいな。 iik> java:util:List cells Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at ioke.lang.JavaConstructorNativeMethod.inspect(JavaConstructorNativeMethod.java:66) at ioke.lang.Method.get…
関数に定義する: iik> fib = method(n, if(n == 0, 0, if(n == 1, 1, fib(n-1) + fib(n-2)))) +> fib:method(n, if(n ==(0), 0, if(n ==(1), 1, fib(n -(1)) +(fib(n -(2)))))) iik> fib(10) +> 55整数オブジェクトのメソッドとして定義する: iik> Number …
「流れるようなインターフェイス - 予定は未定Blog版」の話。IokeだとRangeオブジェクトを使う場面ですね。オブジェクトにはRangeオブジェクトを返す「..」メソッドが用意されていて、例えば「"hogepiyofoobar".substr(2..5)」のような使い方ができます。Fro…
「「topcoderの道1」をGolfで - uokumura’s diary」より。 Mixins Enumerable indexOf = method(value, self findIndex(==value)) Range at = method(i, self asList at(i)) Text codePointAt = method(i, self chars [](i) [](0)) Text valueOf = method(c…
Number Integer fizz = method(if(self % 3 == 0, "fizz", "")) Number Integer buzz = method(if(self % 5 == 0, "buzz", "")) Number Integer fizzbuzz = method((self fizz) + (self buzz)) (1..100) map(v, if(v fizzbuzz empty?, v, v fizzbuzz)) print…
うん、一応できたw 文法の確認とか標準オブジェクトのメソッド調べたりとかその他もろもろで、3日前くらいから手を付けて10時間くらいです。 方針としては、「http://d.hatena.ne.jp/katzchang/20090609/p1」と同様です。デッキを配るというより、プレイヤー…
http://olabini.com/blog/2008/11/ioke-slashdot-faq/ "Ioke"は「いおき」と読む。 なぜJVMか? GCがあるから。 なぜLispやSmalltalkじゃないの? "They show the way, but it's not the end." なぜ新しい言語を開発するの? なぜ新しい言語を開発しちゃだめ…
http://ioke.org/guide.html#objects オブジェクト Iokeのオブジェクトモデルはとてもシンプル。Iokeでは全てがオブジェクトであり、以下のルールに従っています。オブジェクトは、以下のものを持ちます: 0個以上のmimicと0個以上のcell ドキュメントのテキ…
The Ioke JVM Language: The power of Lisp and Ruby with an intuitive syntaxによると、Iokeでは"Condition"という特徴的な手法があるようなので、プログラミングガイドからとりあえず訳してみる。http://ioke.org/guide.html#conditions Conditions One o…