質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

1470閲覧

「小さい順にN 個の素数」を求めるには?

manman

総合スコア233

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2016/09/11 22:16

編集2016/09/11 23:17

「小さい順にN 個の素数」を求めるのにどうしていますか?

http://qiita.com/norioc/items/5c270ad6ff5d22d1efd0
http://qiita.com/kanetai/items/dc8a79cd08d5a0ebd05f
には
Prime.each.take( )
としているのですが、
Prime.take( )
でいいような気がします。
後者では何か問題があるのでしょうか?

ruby

1irb(main):001:0> require 'prime' 2=> true 3irb(main):002:0> Prime.take(5) 4=> [2, 3, 5, 7, 11] 5irb(main):003:0> Prime.each.take(5) 6=> [2, 3, 5, 7, 11] 7irb(main):004:0> Prime.take(5).map{|i| i * i} 8=> [4, 9, 25, 49, 121] 9irb(main):005:0> Prime.each.take(5).map{|i| i * i} 10=> [4, 9, 25, 49, 121]

(追記)
Prime.each.take( ) の後でeach メソッドを使うなら、
Prime.each.take( ).each となり格好悪い感じがするのですが、
こうするしかないのでしょうか?
それなら、Prime.take( ).each の方がすっきりしていると
個人的に思うのですが、どうでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

class Prime (Ruby 2.3.0)より

なお、利便性のためにデフォルトインスタンスのメソッドをクラスメソッドとしても利用できます。

と言うことなので、Prime.instanceに対して実行できるメソッドは、Primeに対して直接呼び出せると言うことです。Primeは、Enumerableをインクルードしているので、Enumerableのメソッドは全部使えます。takeEnumerableのメソッドなので、使って問題ありません。

投稿2016/09/12 07:24

otn

総合スコア84498

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ruby の Prime の説明
http://docs.ruby-lang.org/ja/2.3.0/library/prime.html
からは、Prime.each.take() と Prime.take()については情報がえらえませんでした。
でも、どちらも動作しますね。
Prime.first(10) というのも可能なようです。

参考情報:

...
Prime.take(10) #=> [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
...
Prime.first(10) # => [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
...

投稿2016/09/11 22:40

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manman

2016/09/11 23:19

参考情報のstackoverflow の回答にも、Prime.take( ) となっていますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問