人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Rubyで質問です
include Math
a = (:to_s).to_proc
puts a[123]
は"123"になるのに
b = (:sin).to_proc
puts b[1]
はエラーになります。
in `[]': private method `sin' called for 1:Fixnum (NoMethodError)

b=->x{sin(x)} 以外でsinをProc型にする簡単な記法はないでしょうか?

●質問者: garyo
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● いわどん
●100ポイント

以下のようにProcの代わりにMethodではダメでしょうか?

b = Math.method(:sin) # => #<Method: Math.sin>
b[123] # => -0.45990349068959124

garyoさんのコメント
ありがとうございます。使えそうですね。 http://ruby.g.hatena.ne.jp/garyo/20130922/p4 関数を渡して積分するサンプルを作ろうと思ったときにsin()は元々関数なので b=sin みたいな形で関数を引数とする関数に渡せるといいのにと思い質問しました。

質問者から

ruby 2.0.0p195 (2013-05-14) [i386-mswin32_100]
QSはWindows7です。


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ