[#6862] Re: http_get.rb — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6844] Re: http_get.rb
藤本です、こんにちは。
まつもと ゆきひろです
藤本です、こんにちは。
まつもと ゆきひろです
[#6889] lib/date.rb — Tadayoshi Funaba <tadf@...>
ふなばです。
まつもと ゆきひろです
[#6906] ruby's Icon ? — 藤本尚邦 / FUJIMOTO Hisakuni <hisa@...>
藤本です、こんにちは。
まつもと ゆきひろです
藤本です、こんにちは。
小澤さくです。
藤本です、こんにちは。
藤本です、こんばんは。
まつもと ゆきひろです
にしなです。
[#6918] manual 1.18b index — WATANABE Tetsuya <tetsu@...>
ruby-man-1.1b8 で、name タグがついているものを拾い集めて
まつもと ゆきひろです
小澤さくです。
まつもと ゆきひろです
小澤さくです。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
[#6929] Expect lib for ruby — nosuzuki@... (Norio Suzuki)
はじめまして。Perl から ruby or python に乗り換えようと考えている鈴木
[#6954] Re: ruby's Icon ? — nosuzuki@... (Norio Suzuki)
こんばんは。鈴木教郎です。
まつもと ゆきひろです
小澤さくです。
Thu, Mar 05, 1998 at 02:52:26PM +0900 において
まつもと ゆきひろです
原です。
[#6978] win32 版 ruby の getc について — ARIMA Yasuhiro <fit0298@...>
はじめまして。有馬と申します。
[#6983] ext POSIX.setsid — WATANABE Tetsuya <tetsu@...>
拡張ライブラリの作り方はこんな感じでいいでしょうか?
[#7004] gtk 0.99.4 and gtk module — Noritsugu Nakamura <nnakamur@...>
[#7008] builtin class inherit — TEI meiki <tei@...>
鄭です。
前田です。
まつもと ゆきひろです
鄭です。
まつもと ゆきひろです
[#7022] スレッドの終了待ち — densuke@...2.so-net.or.jp
佐藤@東邦大です。
[#7023] infinity — Tadayoshi Funaba <tadf@...>
ふなばです。
前田です。
けいじゅ@日本ラショナルソフトウェアです.
In message <199803091741.CAA05774.keiju@cupmail0.rational.com>
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
In message <199803100359.MAA08628.keiju@cupmail0.rational.com>
けいじゅ@日本ラショナルソフトウェアです.
[#7083] about rbc — Kazuhisa YANAGAWA <katze@...>
rbc について二つ質問があります.
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
[#7107] calender-html.rb (Re: call for scripts) — Shin-ichiro HARA <sinara@...>
原です。
原です。
原です。
ごとけんです
原です。
原です。
[#7111] How to simulate Perl's DATA file handle — OZAWA Sakuro <crouton@...>
小澤さくです.
[#7126] do end or {} — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです
[#7145] gsub — WATANABE Tetsuya <tetsu@...>
gsub について
[#7147] each_char — TEI meiki <tei@...>
鄭です。
[#7153] please apply me — SHUDOH Kazuyuki <shudoh@...>
首藤といいます。
まつもと ゆきひろです
[#7192] I hope join. — Takashi Shimizu <simtak@...>
清水と申します。
[#7208] for in bsh — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
まつもと ゆきひろです
小澤さくです。
まつもと ゆきひろです
前田です。
けいじゅ@日本ラショナルソフトウェアです.
[#7222] jcode.rb — NAGAI Hidetoshi <nagai@...>
はじめまして.永井@知能.九工大と申します.
[#7232] final.rb error? — tateishi@...
立石です。
まつもと ゆきひろです
立石です。
In message <19980326102918.3974.qmail@localhost>
まつもと ゆきひろです
In message <199803270403.NAA00909@picachu.netlab.co.jp>
[#7244] [Q] test file1 -nt file2 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#7257] TkScale.new(parent){to -0.1} — gotoken@... (GOTO Kentaro)
ごとけんです
[#7259] Socket#shutdown — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[ruby-list:7047] Re: modulo
けいじゅ@日本ラショナルソフトウェアです.
In [ruby-list :07035 ] the message: "[ruby-list:7035] Re: modulo ", on
Mar/10 05:27(JST) toyofuku@juice.or.jp writes:
> 豊福@パパイヤです。
> mathn.rb で / を再定義している路線をねらったん
>ですが。
うーん. あれは, / だけですからね... ほとんどの場合, rubyも問題なく動作
するでしょう(^^'''
>> # いや, 無理があるというのと違うかな, 目的が剰余系なrubyを作りたいとい
>> # うなら別ですが...
>
> mathn.rb で分数電卓の気分で使えたように剰余系
>電卓の気分で使えるようなものができないかというのが
>目的です。
うーん. なるほど....
そうするとかなりうらわざを使う必要が出てきますね...
こんなのはどうでしょう?
--
$mod = 0
def modulo(n)
$mod = n.abs
end
class Fixnum
alias no_pl +
alias no_mn -
alias no_ml *
alias no_dv /
def mo_pl (other); super; end
def mo_mu (other); super; end
def mo_ml (other); super; end
def mo_dv (other); super; end
alias + mo_pl
alias - mo_mu
alias * mo_ml
alias / mo_dv
def mo_divmod(other)
normal do
x = self / other
y = self - x * other
return x, y
end
end
alias divmod mo_divmod
end
class Bignum
alias no_pl +
alias no_mn -
alias no_ml *
alias no_dv /
def mo_pl (other); super; end
def mo_mu (other); super; end
def mo_ml (other); super; end
def mo_dv (other); super; end
alias + mo_pl
alias - mo_mu
alias * mo_ml
alias / mo_dv
def mo_divmod(other)
normal do
x = self / other
y = self - x * other
#y = self.mn(x.ml(other))
return x, y
end
end
alias divmod mo_divmod
end
class Integer
def normal
for t in [Fixnum, Bignum]
eval %Q[
class #{t}
alias + no_pl
alias - no_mn
alias * no_ml
alias / no_dv
end
], TOPLEVEL_BINDING
end
begin
return yield
ensure
for t in [Fixnum, Bignum]
eval %Q[
class #{t}
alias + mo_pl
alias - mo_mn
alias * mo_ml
alias / mo_dv
end
], TOPLEVEL_BINDING
end
end
end
def mod
if ($mod == 0)
return self
else
void, x = self.divmod($mod)
normal{x = x + $mod} if (x < 0)
return x
end
end
def inv
x = self
y = $mod
klist = []
void, a = x.divmod(y)
normal{a = a + y} if (a < 0)
b = y
while b != 0
k, a = a.divmod(b)
klist.push(k)
a, b = b, a
end
klist.pop
normal do
a, b = 1, 0
while (k = klist.pop)
a, b = k * a + b, a
end
if (x * b - y * a < 0)
b = y - b
end
return b
end
end
def mo_pl(other)
normal{self + other}.mod
end
def mo_mn(other)
normal{self - other}.mod
end
def mo_ml(other)
normal{self + other}.mod
end
def mo_dv(other)
normal do
if ($mod == 0)
self / other
else
(self * other.inv).mod
end
end
end
end
---
# 大体動作しますがバグ付きです(^^;;;
# あと, ruby-1.1b9でないと動作しません.
味噌はイテレータnormalです.
normal{exp}
の中では通常の計算が可能になります.
# ただし, 中でaliasしているのでマルチスレッド対応ではありません.
でも, これではforの問題は解決していませんので
modulo(n) {exp}
でそのイテレータの中だけ剰余系にするというほうが良いかも知れません.
そうすると,
1. $modの様な大域変数なしにできる
2. forも無理なく使えると思う
def fib(n);
a, b = 1, 1;
for i in 1..n do; modulo(3) {print "#{b} "; a, b = (a+b)*1, a} end;
print "\n";
end;
まあ, プログラムの中にmoduloイテレータが入ってしまいますが...
>> ># 剰余系での演算
>> ># 合成数のケースはちょっと面倒なので後まわし
>> 合成数って何でしたっけ?
>
> えっ・・・、素数でも1でもない自然数のことです・・・。
>前に書いたプログラムは 4 / 6 mod 10 みたいなやつに
>対応してません。
そうでしたっけ? すっかり忘れたなあ...
__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@rational.com <<---