[#33561] open-uri problem — rubikitch@...
るびきちです。
[#33567] rational, complex and nuby — Tadayoshi Funaba <tadf@...>
ruby に rational と complex を組みこもうと試していて nuby という派生物
なかだです。
> 若干古い1.8.6がベースでしょうか。
なかだです。
> 2002/01/25版にその後の修正を手で追加した状態? ChangeLogをみたら、
なかだです。
> ちょっと見たところ、Enumerable#stable_sort_byがsortを使っている
原です。
[#33580] Re: cgi.rb再構築案 — "Makoto Kuwata" <kwa@...>
桑田といいます。
まつもと ゆきひろです
なかだです。
[#33611] Solaris で timeout.rb が Segmentation fault する。 — shiiya@...
はじめまして。椎屋と申します。
なかだです。
椎屋です。反応ありがとうございます。
なかだです。
さとうふみやす @ OSS テクノロジです。
In article <87r6foys1z.wl%[email protected]>,
At Fri, 8 Feb 2008 14:00:35 +0900,
In article <87prv8yovi.wl%[email protected]>,
とみたです。
In article <[email protected]>,
[#33621] EUC-KR <-> UTF-8 transition table — "Park Ji-In" <tisphie@...>
朴 芝印です。
成瀬です。
At 05:00 08/02/07, NARUSE, Yui wrote:
朴 芝印です。
[#33628] encdet.rb — Tanaka Akira <akr@...>
前から考えていたのですが、ファイル先頭の magic comment や
まつもと ゆきひろです
In article <[email protected]>,
須藤です。
In article <[email protected]>,
須藤です。
In article <[email protected]>,
[#33646] require/load/autoload の encoding オプション — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
[#33662] rational, complex and mathn — Tadayoshi Funaba <tadf@...>
rational は floor、truncate、ceil、round を定義していません。Numeric
他にも問題、課題はあると思います。すぐに解決できるものと、そうでないも
ひとつ書き忘れました。
まつもと ゆきひろです
> 原さんのrationalは導入予定がありますので、この機会にもう一度
原です。
> 前にふなばさんと個人的なメールのやりとりで、結局また私がrationalをまと
原です。
> > それなりに速くはなるし、単純なところでそれなりに満足していますが、一度、
nurat 0.0.2 を出しました (ついでに nucomp も)。
仕様を確認していきたいと思います。
まつもと ゆきひろです
原です。
> > new!はRubyで実装しているためにだけ必要なので、Cで実装するな
原です。
> Rational::Unify が定義されているときは、Rational.new(1,1) で Integer
> Rational() は、1つか2つの引数をとる。
> 実際的に重要な機能が Rational() という名前で固定されるのはクラスの定義
もうあまり手を入れないでおこうと思ったのです、つい手を入れてしまいまし
原です。
ちょっと実験してみました。原さんの rational は、かけ算割り算が速いので、
で、考えていたんですが、目的は、最速の rational を作ることではなくて、
原です。
成瀬です。
まつもと ゆきひろです
> はい。Complexについても1.9の間に組み込んでよいと思います。
まつもと ゆきひろです
nurat を組みこんでみました。最低限必要な修正だけになっていると思います。
rational と complex を 1.9 に組みこむ作業をしました。
異議がなければ、若干の手直しの後、次週末にでも trunk にコミットしよう
> 異議がなければ、若干の手直しの後、次週末にでも trunk にコミットしよう
まつもと ゆきひろです
[#33674] erb.rb の仕様について — "Makoto Kuwata" <kwa@...>
桑田といいます。
[#33676] Suggestion: Proc#curry — "Yusuke ENDOH" <mame@...>
遠藤と申します。
[#33679] bigdecimal — Tadayoshi Funaba <tadf@...>
bigdecimal/math.rb の BigMath は、利用者が include してつかうことを前
Integer や Float に比べると、BigDicimal() は、1 や 1.1 を受けつけない、
斎藤と申します。
> 仮にBigDecimal(1.1)を、(二進小数として)受け付けると、「BigDecimalでは、
まつもと ゆきひろです
[#33699] trunk: インストールファイルのアクセス権 — pegacorn <subscriber.jp@...>
trunk で、インストールファイルのアクセス権が適切に設定されないものが
[#33712] Array の product の戻り値 — "Hideo Konami" <konami@...>
小波です。
[#33726] Re: [ruby-cvs:22680] Ruby:r15443 (trunk): * bootstraptest/runner.rb, bootstraptest/test_method.rb, enc/depend, — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
成瀬です。
In article <[email protected]>,
Tanaka Akira wrote:
こんにちは、なかむら(う)です。
成瀬です。
[#33825] Ruby M17N 会議の議事録 — "NARUSE, Yui" <naruse@...>
成瀬です。
[#33837] spec of Rational — Shin-ichiro HARA <sinara@...>
原です。
[#33838] 文字列処理の高速化 ? — Martin Duerst <duerst@...>
ただの一例ですが、先週の金曜日に松本さんに見せたときに
[#33843] IO.copy_stream — Tanaka Akira <akr@...>
IO.copy_stream をつけるのはどうでしょうか。
[#33889] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — Urabe Shyouhei <shyouhei@...>
卜部です。ちょっとお知恵を拝借したく。
ミスって送信ボタン押しちゃった
こんにちは、なかむら(う)です。
なかだです。
Nobuyoshi Nakada さんは書きました:
豊福です。
まつもと ゆきひろです
豊福です。
まつもと ゆきひろです
豊福です。
まつもと ゆきひろです
豊福です。
[#33894] character encodings differ: US-ASCII and dummy encoding — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
[#33916] UTF_16LE.dummy? returns false — sheepman <sheepman@...>
こんにちは sheepman です。
[#33926] --host=i586-mingw32msvc — Kouhei Sutou <kou@...>
須藤です。
[#33937] patch for ruby_1_8_6/lib/rexml/element.rb@12852 — oshida@...
押田です。
[#33943] warning about space before argument parentheses — Nobuyoshi Nakada <nobu@...>
なかだです。
[ruby-dev:33676] Suggestion: Proc#curry
遠藤と申します。
http://subtech.g.hatena.ne.jp/cho45/20071119/1195420784
で提案されている Proc#curry を組み込むのはどうでしょうか。
proc {|x, y, z| x + y + z }.curry
が
proc {|x| proc {|y| proc {|z| x + y + z } } }
と同じ意味になります。
ski コンビネータを書くときなどに、ささやかな幸せが得られます。
s = proc {|f, g, x| f[x][g[x]] }.curry
k = proc {|x, y| x }.curry
逆に、Proc#curry の存在が害になることはないと思います。
以下はたたき台です。
Index: proc.c
===================================================================
--- proc.c (revision 15417)
+++ proc.c (working copy)
@@ -1608,7 +1608,60 @@
return bindval;
}
+static VALUE curry(VALUE dummy, VALUE args, int argc, VALUE *argv);
+
+static VALUE
+make_curry_proc(VALUE proc, VALUE passed, VALUE arity)
+{
+ VALUE args = rb_ary_new2(3);
+ RARRAY_PTR(args)[0] = proc;
+ RARRAY_PTR(args)[1] = passed;
+ RARRAY_PTR(args)[2] = arity;
+ rb_ary_freeze(args);
+ rb_ary_freeze(passed);
+ return rb_proc_new(curry, args);
+}
+
+static VALUE
+curry(VALUE dummy, VALUE args, int argc, VALUE *argv)
+{
+ int i;
+ VALUE proc, passed, arity;
+ proc = RARRAY_PTR(args)[0];
+ passed = RARRAY_PTR(args)[1];
+ arity = RARRAY_PTR(args)[2];
+
+ passed = rb_ary_plus(passed, rb_ary_new4(argc, argv));
+ if(RARRAY_LEN(passed) < FIX2INT(arity)) {
+ return make_curry_proc(proc, passed, arity);
+ }
+ return rb_proc_call(proc, passed);
+}
+
/*
+ * call-seq:
+ * prc.curry => a_proc
+ *
+ * Returns a curried proc.
+ *
+ * x = proc {|a, b, c| a + b + c }
+ * p x[1, 2, 3] #=> 6
+ * x = x.curry
+ * p x[1][2][3] #=> 6
+ */
+static VALUE
+proc_curry(VALUE self)
+{
+ VALUE arity = proc_arity(self);
+
+ if(FIX2INT(arity) < 0) {
+ arity = INT2FIX(-FIX2INT(arity) - 1);
+ }
+
+ return make_curry_proc(self, rb_ary_new(), arity);
+}
+
+/*
* <code>Proc</code> objects are blocks of code that have been bound to
* a set of local variables. Once bound, the code may be called in
* different contexts and still access those variables.
@@ -1646,6 +1699,7 @@
rb_define_method(rb_cProc, "to_s", proc_to_s, 0);
rb_define_method(rb_cProc, "lambda?", proc_lambda_p, 0);
rb_define_method(rb_cProc, "binding", proc_binding, 0);
+ rb_define_method(rb_cProc, "curry", proc_curry, 0);
/* Exceptions */
rb_eLocalJumpError = rb_define_class("LocalJumpError", rb_eStandardError);
--
Yusuke ENDOH <[email protected]>