なにはともあれ, builtinから実装しなくては始まらない気がしたので, 少しずつ実装を初めています.
https://github.com/garaemon/clap/tree/master/src/builtin/
pythonのbuiltin関数のreferenceはここです
http://docs.python.org/library/functions.html
これをみるとわかるのですが, evalとかcompileとかabsとか, 微妙なものがいくつかあります.
以下のように分類できるかと思います
個人的に1, 2は実装しなくてよいかと思うのですがどうでしょうか?
clap-builtinは, common-lispと同時にuse-packageすると便利なものが多いと思うので,
シンボルの衝突は特に避けたいです.
また, 微妙そうなものは後回しにしてちょこちょこと実装を進めていきましょう.
以下のリストは適時更新.
1. CLに同名で同等の機能がある物
abs, ...
2. CLに同名でほぼ同等の機能がある物
compile, eval(引数が文字列かリストかが異なる), ...
3. CLでは実装が難しい物
locals, ...
-- ryohei
g1さんからユーティリティを追加したいという話がありましたが,
全体で広く使えそうなユーティリティはbuiltin/util.lispに
追加していく方向で行きましょう
-- ryohei
2010/12/4 Naoto Yokoyama <built...@gmail.com>:
とりあえず, builtinの関数に関してはさらっと実装してみました
http://docs.python.org/library/functions.html
https://github.com/garaemon/clap/blob/master/src/builtin/clap-builtin.lisp
unicode関連に関しては実装していません.
builtinのclassおよびmethod実装なのですが,
http://docs.python.org/library/stdtypes.html
memoryviewの実装とかはちょっとむずかしそうですね.
-- ryohei
2010/12/4 Ryohei Ueda <gara...@gmail.com>:
組み込みの文字列関係のメソッドを実装しました.
# MLの件数は減ってますが実装は着々とやってますよ!
https://github.com/garaemon/clap/blob/master/src/builtin/string.lisp
実装はloop祭りです. 一応ある程度高速な実装を意識しました.
これが入ったので, clapはそれなりに使えるものが出てきたかと思います
テストほとんどしてないので, 使ってみた方はバグ報告お願いします
で, 相談なのですが
clap-builtinは制約として, common-lispパッケージにuse-package
して問題がないというのを意識してます。
ですので名前の衝突はちょっと問題になります.
具体的には, str.findとstr.countのみstring-find, string-countという名前にして
他のメソッドはそのままの名前にしてます.
例えば, str.split -> splitメソッド
これは統一性がないのですべてstring-xxxにしたほうが良いかな?とも
思っているのですがみなさんの意見を聞かせてください
-- ryohei
2010/12/6 Ryohei Ueda <gara...@gmail.com>:
At Thu, 30 Dec 2010 15:36:34 +0900,
Ryohei Ueda wrote:
[...]
> で, 相談なのですが
> clap-builtinは制約として, common-lispパッケージにuse-package
> して問題がないというのを意識してます。
> ですので名前の衝突はちょっと問題になります.
>
> 具体的には, str.findとstr.countのみstring-find, string-countという名前にして
> 他のメソッドはそのままの名前にしてます.
> 例えば, str.split -> splitメソッド
>
> これは統一性がないのですべてstring-xxxにしたほうが良いかな?とも
> 思っているのですがみなさんの意見を聞かせてください
自分は、
1) clパッケージと被るものは、shadowしてしまう
2) use-packageさせることを意図したパッケージは、clパッケージと合わせてclapとしてまとめる
(pythonの名前を優先)
3) use-packageするとき、clapパッケージは、clとは一緒に指定しない
というのはどうだろうかと思いました。
理由は、
1) string-が全部つくのも、特定のものだけ付くのも使い勝手が悪い気がする
2) どの名前がclパッケージのどことぶつかっているのかをパッケージ作成の際に気にするのが面倒
3) 使っている時にどれがpython風に動作する関数だったか、cl風の動作か確認するのが面倒そう
というのが主なところです。
ユーザーがuse-packageするときはもうpython風動作がベースですよと、
頭を切り換えた方が楽な気がします。
逆にパッケージをuse-packageしないで使うことがメインの場合は、
(py:count "foo" "")
のようになると使い勝手が良いかなと思いました。
2010/12/30 CHIBA Masaomi <chiba....@gmail.com>:
なるほど、ユーザ側から考えたら、
clap:countと提供するのがよさそうですね。
報告ですが, clap-builtinがほぼ実装し終わったと思います.
https://github.com/garaemon/clap/blob/master/src/builtin/clap-builtin.lisp
-- ryohei
2010/12/31 Ryohei Ueda <gara...@gmail.com>: