Issue #5521 has been reported by tadayoshi funaba. ---------------------------------------- Feature #5521: Numeric#rational?、Numeric#complex?、Numeric#float? の追加 http://redmine.ruby-lang.org/issues/5521 Author: tadayoshi funaba Status: Open Priority: Normal Assignee: Category: core Target version: 2.0 今のところ Common Lisp の rationalp などに似た仕様を考えています。 rational? は Integer や Rational に対しても真になります。float? は組み 込みに関しては Float だけですが、それ以外の実装についてもあればそれも真 になります。complex? も同様です。 別の考えとして、Scheme のような述語に仕様変更する考えもあります。その場 合、クラスを見るのではなく、integer? は、1、1.0、Rational(1) のいずれに 対しても真を返す事になります。 いずれにしても特定のクラスと一対一対応するものは意図していません。 実際に、complex の実装でも必要になっています。今は仕方がないので胡麻化 しに近いもので、もうひとつ別の複素数があったり、別の浮動小数点数実装が あった場合に対応できません。
on 2011-10-31 12:50
on 2011-10-31 20:05
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:44720] [ruby-trunk - Feature #5521][Open]
Numeric#rational?$B!"(BNumeric#complex?$B!"(BNumeric#float? $B$NDI2C(B"
on Mon, 31 Oct 2011 20:50:27 +0900, tadayoshi funaba
<redmine@ruby-lang.org> writes:
|$B:#$N$H$3$m(B Common Lisp $B$N(B rationalp $B$J$I$K;w$?;EMM$r9M$($F$$$^$9!#(B
|rational? $B$O(B Integer $B$d(B Rational $B$KBP$7$F$b??$K$J$j$^$9!#(Bfloat?
$B$OAH$_(B
|$B9~$_$K4X$7$F$O(B Float $B$@$1$G$9$,!"$=$l0J30$N<BAu$K$D$$$F$b$"$l$P$=$l$b??(B
|$B$K$J$j$^$9!#(Bcomplex? $B$bF1MM$G$9!#(B
|
|$BJL$N9M$($H$7$F!"(BScheme $B$N$h$&$J=R8l$K;EMMJQ99$9$k9M$($b$"$j$^$9!#$=$N>l(B
|$B9g!"%/%i%9$r8+$k$N$G$O$J$/!"(Binteger? $B$O!"(B1$B!"(B1.0$B!"(BRational(1)
$B$N$$$:$l$K(B
|$BBP$7$F$b??$rJV$9;v$K$J$j$^$9!#(B
|
|$B$$$:$l$K$7$F$bFCDj$N%/%i%9$H0lBP0lBP1~$9$k$b$N$O0U?^$7$F$$$^$;$s!#(B
$BFCDj$N%/%i%9$H0lBP0lBP1~$9$k$N$G$J$$$N$G$"$l$P0UL#$,$"$k$h$&(B
$B$J5$$,$7$^$9!#$3$N>l9g(B 1.0 $B$KBP$7$F(B integer? $B$,??$rJV$9$N$G(B
$B$"$l$P!"(B1.0$B$K$+$J$j6a$$CM!"$?$H$($P(B 1.0 / 3.0 * 3.0 $B$O$I$&$J(B
$B$s$G$7$g$&$M!#(B
$B$^$D$b$H(B $B$f$-$R$m(B /:|)
on 2011-10-31 23:40
$B$U$J$P$5$s(B
> complex? $B$bF1MM$G$9!#(B
complex?$B$,56$K$J$k$N$O$I$&$$$&>l9g$G$9$+(B?
real?$B$r:n$i$:!"(Bcomplex?$B$r:n$kM}M3$O(B?
--
Tomoaki NISHIYAMA
Advanced Science Research Center,
Kanazawa University,
13-1 Takara-machi,
Kanazawa, 920-0934, Japan
on 2011-11-01 01:45
$B$`$i$?$G$9!#(B (2011.11.01 04:04 ), Yukihiro Matsumoto wrote: > |$BJL$N9M$($H$7$F!"(BScheme $B$N$h$&$J=R8l$K;EMMJQ99$9$k9M$($b$"$j$^$9!#$=$N>l(B > |$B9g!"%/%i%9$r8+$k$N$G$O$J$/!"(Binteger? $B$O!"(B1$B!"(B1.0$B!"(BRational(1) $B$N$$$:$l$K(B > |$BBP$7$F$b??$rJV$9;v$K$J$j$^$9!#(B > | > |$B$$$:$l$K$7$F$bFCDj$N%/%i%9$H0lBP0lBP1~$9$k$b$N$O0U?^$7$F$$$^$;$s!#(B > > $BFCDj$N%/%i%9$H0lBP0lBP1~$9$k$N$G$J$$$N$G$"$l$P0UL#$,$"$k$h$&(B > $B$J5$$,$7$^$9!#$3$N>l9g(B 1.0 $B$KBP$7$F(B integer? $B$,??$rJV$9$N$G(B > $B$"$l$P!"(B1.0$B$K$+$J$j6a$$CM!"$?$H$($P(B 1.0 / 3.0 * 3.0 $B$O$I$&$J(B > $B$s$G$7$g$&$M!#(B $B$3$l$O;d$b5$$K$J$j$^$7$?!#(B1.0.float? $B$,??$K$J$k$J$i(B 1.0.integer? $B$O56$K$J$C$FM_$7$$$HD>46E*$K9M$($F$7$^$$$^$9!#(B Float#rational? $B$O$I$&$J$j$^$9$+!)(B $B$3$NJ}8~@-$GDj5A$5$l$k>l9g!"(BRational(1).integer? $B$,??$K$J$k;v$K$D$$$F!"(B $B0[O@$O$"$j$^$;$s!#$=$N>l9g$O(B Complex(1, 0).ineger? $B$b??$K$J$k$b$N$@$H9M(B $B$($F$$$^$9$,!"9g$C$F$^$9$+!)(B
on 2011-11-01 13:14
> > $BFCDj$N%/%i%9$H0lBP0lBP1~$9$k$N$G$J$$$N$G$"$l$P0UL#$,$"$k$h$&(B > > $B$J5$$,$7$^$9!#$3$N>l9g(B 1.0 $B$KBP$7$F(B integer? $B$,??$rJV$9$N$G(B > > $B$"$l$P!"(B1.0$B$K$+$J$j6a$$CM!"$?$H$($P(B 1.0 / 3.0 * 3.0 $B$O$I$&$J(B > > $B$s$G$7$g$&$M!#(B > > $B$3$l$O;d$b5$$K$J$j$^$7$?!#(B1.0.float? $B$,??$K$J$k$J$i(B > 1.0.integer? $B$O56$K$J$C$FM_$7$$$HD>46E*$K9M$($F$7$^$$$^$9!#(B > Float#rational? $B$O$I$&$J$j$^$9$+!)(B $B@0?t$O(B x == x.round $B$H$$$&H=CG$G$7$g$&!#(BScheme $B<0$@$H(B float $B$b(B rational $B$G$7$g$&!#(B > $B$3$NJ}8~@-$GDj5A$5$l$k>l9g!"(BRational(1).integer? $B$,??$K$J$k;v$K$D$$$F!"(B > $B0[O@$O$"$j$^$;$s!#$=$N>l9g$O(B Complex(1, 0).ineger? $B$b??$K$J$k$b$N$@$H9M(B > $B$($F$$$^$9$,!"9g$C$F$^$9$+!)(B $B$O$$!#(B
on 2011-11-01 13:17
> > complex? $B$bF1MM$G$9!#(B > > > complex?$B$,56$K$J$k$N$O$I$&$$$&>l9g$G$9$+(B? > > real?$B$r:n$i$:!"(Bcomplex?$B$r:n$kM}M3$O(B? CL $B$N(B complexp $B$O!"<B?t$G$J$$J#AG?t$H$$$&0UL#$G!"(BScheme $B$N(B complex? $B$O(B number? $B$HF1$8$H$$$&;v$G$7$g$&!#(Breal? $B$O(B 1.9 $B$K4{$K$"$j$^$9!#(B
on 2011-11-02 04:40
$B$`$i$?$G$9!#(B (2011.11.01 21:13 ), Tadayoshi Funaba wrote: >> $B$3$l$O;d$b5$$K$J$j$^$7$?!#(B1.0.float? $B$,??$K$J$k$J$i(B >> 1.0.integer? $B$O56$K$J$C$FM_$7$$$HD>46E*$K9M$($F$7$^$$$^$9!#(B >> Float#rational? $B$O$I$&$J$j$^$9$+!)(B > > $B@0?t$O(B x == x.round $B$H$$$&H=CG$G$7$g$&!#(BScheme $B<0$@$H(B float $B$b(B > rational $B$G$7$g$&!#(B $B!V(BFloat $B$O(B inexact $B$J(B rational$B!W$H$$$&0LCVIU$1$K$9$k$s$G$9$M!#(B $B$=$l$J$iG<F@$G$9!#(B
on 2013-02-26 01:50
Issue #5521 has been updated by ko1 (Koichi Sasada). Assignee set to matz (Yukihiro Matsumoto) 宙ぶらりんになっているようなので、まつもとさんにアサインしておきます。 ご検討下さい。 (ふなばさんか、mrkn のほうが良かった?) ---------------------------------------- Feature #5521: Numeric#rational?、Numeric#complex?、Numeric#float? の追加 https://bugs.ruby-lang.org/issues/5521#change-37020 Author: tadf (tadayoshi funaba) Status: Open Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: core Target version: Next Major 今のところ Common Lisp の rationalp などに似た仕様を考えています。 rational? は Integer や Rational に対しても真になります。float? は組み 込みに関しては Float だけですが、それ以外の実装についてもあればそれも真 になります。complex? も同様です。 別の考えとして、Scheme のような述語に仕様変更する考えもあります。その場 合、クラスを見るのではなく、integer? は、1、1.0、Rational(1) のいずれに 対しても真を返す事になります。 いずれにしても特定のクラスと一対一対応するものは意図していません。 実際に、complex の実装でも必要になっています。今は仕方がないので胡麻化 しに近いもので、もうひとつ別の複素数があったり、別の浮動小数点数実装が あった場合に対応できません。
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.