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コンビネータ

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じゃなく、直接()で呼べれば楽になるだろーけど、…

problem 1

(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と直接関係あるかは、知らん。

Macro - マクロ とは

Ola Biniコメント記念に、Ioke GuideのMacro部分を(とりあえず)和訳。ぎこちないのは俺クオリティ。 http://www19.atwiki.jp/katzchang/pages/15.htmlで、全訳中です。お客様のなかで、協力して頂ける方はいらっしゃいませんかぁー? Macros - マクロ Ioke…

シンタックスハイライトの対応希望ってどうするんだろか?

Iokeのハイライトに対応して欲しい。 emacsのハイライト定義はある…っぽいんだけど、そういうので大丈夫なんでしょうか?と、「ソースコードを色付けして記述する(シンタックス・ハイライト) - はてなダイアリーのヘルプ」にTB送ってみる。

ビンゴゲーム

先日のHokuriku.rbで、ノベルティの抽選がビンゴゲームだったんだが、 irb 上で rand(76) *1を繰り返し実行してみる方式だと、抽選で進むにつれて重複が多くなるという課題と、既に出た数字のマークを手動でしなければならなかったという課題があり、それに…

Twitter上でIokeプログラミングをとりあえず的に

@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で@メ…

JavaからIokeを使う

コマンド"ioke"から呼ばれるはずのioke.lang.Mainをベースに、とりあえずJavaからIokeを使うテスツ。 r.evaluateString("hogehoge"); で、IokeのRuntimeにメッセージを送る。ioke.lang.Runtimeには他にも、ファイルを受け付けるものがあったりStreamを受け付…

Javaのインタフェースに対してcellsとかを呼ぶと落ちる

階層深いなぁ。大丈夫なんかいな。 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…

フィボナッチ数をiokeで、3通り試す

関数に定義する: 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」をiokeで

「「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…

fizzbuzz問題をiokeで

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…

10分コーディングに10時間くらいかかった件

うん、一応できたw 文法の確認とか標準オブジェクトのメソッド調べたりとかその他もろもろで、3日前くらいから手を付けて10時間くらいです。 方針としては、「http://d.hatena.ne.jp/katzchang/20090609/p1」と同様です。デッキを配るというより、プレイヤー…

Ioke FAQ

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 ドキュメントのテキ…

Conditions - Core kinds

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…