Kink

新着順 人気順

Smartest ≠ Best Fit

LLMにKinkのコードを読み書きさせると、メジャーな言語に引っ張られて、構文を誤解することがあってわずらわしい。それで、OpenCode Goで提供されているモデルのいくつかについて、簡単なコードリーディングのベンチマークをやってみました。結果。 サンプル…

Kink 0.9.7-betaをリリースしました

Kink 0.9.7-betaをリリースしました。 num型が値域を持つようにしました。呼び出しでレシーバを指定する構文をなくしました。詳細は更新履歴を見てください。 Tarball: kink-0.9.7-beta.tar.gz Maven 成果物: org.kink-lang:kink:0.9.7-beta ドキュメンテー…

Kink 0.9.6-beta をリリースしました

Kink 0.9.6-beta をリリースしました。HTTPクライアントを追加しました。詳細は 変更履歴 を見てください。 Tarball: kink-0.9.6-beta.tar.gz Maven 成果物: org.kink-lang:kink:0.9.5-beta ドキュメンテーション

Kink 0.9.5-beta をリリースしました

Kink 0.9.5-beta をリリースしました。APIに大規模な変更、言語に小規模な変更があります。詳細は 変更履歴 を見てください。 Tarball: kink-0.9.5-beta.tar.gz Maven 成果物: org.kink-lang:kink:0.9.5-beta ドキュメンテーション

Kink 0.9.4-beta をリリースしました

Kink 0.9.4-beta をリリースしました。変更については Changelog を見てください。 Tarball: kink-0.9.4-beta.tar.gz Maven 成果物: org.kink-lang:kink:0.9.4-beta ドキュメンテーション

Kink 0.9.3-beta をリリースしました

Kink 0.9.3-beta をリリースしました。変更については Changelog を見てください。 Tarball: kink-0.9.3-beta.tar.gz Maven 成果物: org.kink-lang:kink:0.9.3-beta ドキュメンテーション

Kink 0.9.2-beta をリリースしました

Kink 0.9.2-beta をリリースしました。変更については Changelog を見てください。 Mercurial タグ: 0.9.2-beta Tarball: kink-0.9.2-beta.tar.gz Maven 成果物: org.kink-lang:kink:0.9.2-beta ドキュメンテーション

Kink 0.9.1-beta をリリースしました

Kink 0.9.1-beta をリリースしました。変更については Changelog をごらんください。 Mercurial タグ: 0.9.1-beta Tarball: kink-0.9.1-beta.tar.gz Maven Artifacts: org.kink-lang:kink:0.9.1-beta ドキュメント 英語版の記事

Kink 0.9.0-beta をリリースしました

Kink 0.9.0-beta をリリースしました。Kinkのはじめてのベータ版です。 Mercurial タグ: 0.9.0-beta Tarball: kink-0.9.0-beta.tar.gz Maven Central: org.kink-lang:kink:0.9.0-beta ドキュメント(最新版) 英語版の記事: Kink 0.9.0-beta released

Kinkのドキュメンテーションシステム

KinkのドキュメンテーションシステムをKinkで作りました。Javadocとかgodocみたいなやつです。いずれ 1) JSON出力 2) JSONから各種フォーマットへの変換 の2つに分けるつもりですが、今はまだJSONモジュールがないので、Sphinx用の.rstファイルを直接出力し…

限定継続 (delimited continuation) の動作を理解する

限定継続のオペレータであるshift/resetおよびcontrol/promptについて、その動作が腑に落ちたので、以下にまとめます。 継続とは 継続とは、呼び出されると「この後の計算」を実行する関数です。Schemeにはcall/ccという関数が存在し、プログラムの任意の箇…

渋谷JVM - JVM言語編でLTしました

渋谷JVMという集会の案内を見て、しばらく流していたのですが、実はJVM言語の集まりということが分かったので、Kinkの宣伝のためLT枠に滑り込みました。CCCの懇親会LTを使い回して、午前中には資料を完成させました。用意周到です。本編はScala, Clojure, Gr…

多値と多重代入と Kink

多値と JVM の続き。Kink という言語を作ってるんですけど、ここでは Ruby や Python と同様に、多値はサポートせず、多重代入を可能にしています。ただし、多重代入は特別な構文ではなく、単なる関数呼び出しです。式の値の数という観点では、 Ruby や Pyth…

Java のリフレクションで super.method(...) 相当の呼び出しはできない

下の例のように super.メソッド名(...) とすると親クラスのメソッドが呼べますが、リフレクション経由では同じようにできないことが分かりました。 class Parent { public void bang() { System.out.println("Parent.bang!"); } } class Child extends Paren…

tak(13, 7, 0) 実行時間比較

shを除く各処理系で、tak(13, 7, 0) を走らせた。 処理系 実行時間 Groovy 1.6.4 (Server VM) 0m15s Lua 5.1.4 0m20s JRuby 1.4.0 (Server VM) 0m26s Python 2.6.5 0m43s SCM 5e5 (Scheme) 0m49s Kink 8f30e3bcc17f (Server VM) 1m58s CRuby 1.8.7 3m10s Kin…

いろんな言葉で竹内関数

Kink #!/usr/bin/env kink &tak = { ( &X &Y &Z ) ( X <= Y ).then { Y } { tak( tak( X - 1 Y Z ) tak( Y - 1 Z X ) tak( Z - 1 X Y ) ) } } [ &X &Y &Z ] = ARGS.map { __.int } &TAK = tak( X Y Z ) print_line: format: 'tak( #X #Y #Z ) = #TAK' Scheme…

引数渡しの最適化について

メソッド呼び出し時の引数渡しの最適化について。次のようなメソッドがあったとします。 &half = { ( &N ) N / 2 }ここで、half関数への引数渡しは、仮引数リストに対するassignメソッドの呼び出しと同価です。 &half = { [ &N ].assign( _args ) N / 2 }ass…