2013-07-01から1ヶ月間の記事一覧

Scala で素数のリスト

Scalaでエラトステネスの篩を参考に Scala 2.10 向けにアレンジして書いてみた。しかし効率は良くないようで、10000 個くらいの素数を取得しようとするとあっという間に OutOfMemory になる。 object Prime { def primes: Stream[Int] = { def sieve(xs: Str…

使えそうな記事まとめ

inforno :: Scalaで無限リスト:Haskellライクに Scalaでエラトステネスの篩

Scala で階乗

移動しました → Scala で階乗 - 似非プログラマのうんちく

的外れなコメント達に突っ込んでみる

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 – sumyappRails のネガキャンですか、と思って読んでみたがとんでもない、ちゃんとした記事で好感が持てた。しかしコメントがあまりに的外れちゃんなのでかいつまんでツッコミを…

中間テーブルを用いた多対多の関係(その 6)

実際の出力例です。

中間テーブルを用いた多対多の関係(その 5)

前回からの続きです。モデル同士のアソシエーションを定義します。 class Customer < ActiveRecord::Base has_many :sales has_many :products, :through => :sales end class Product < ActiveRecord::Base has_many :sales end class Employee < ActiveRec…

中間テーブルを用いた多対多の関係(その 4)

次に、中間テーブルが外部キー以外のデータを持つ場合について考えます。使用するアプリは 顧客(customer) 商品(product) 従業員(employee) 支店(branch) 売上(sale) のデータを持っているとします。モデルの作成から始めましょう。 rails g model customer …

関連するモデルを絞り込む

状況 従業員は本店・支店の少なくともいずれかに属し((両方に属する場合もあり、その関連は従業員(employees)と支店(branches)を中間テーブル branches_employees で結びつけている。))、上司(manager)と部下(assistants)がアソシエーションで紐付けられてい…

中間テーブルを用いた多対多の関係(その 3)

今度は License の側から Employee のリストを取得してみましょう。 rails g controller licenses indexapp/views/licenses/index.html.erb <h1>資格取得者一覧</h1> <table border> <thead> <tr><th>資格</th><th>取得者</th></tr> </thead> <tbody> <% @licenses.each do |l| %> <tr> <td><%= l.name %></td> <td><%= l.employees.empty? ? 'なし' : l</td></tr></tbody></table>…

中間テーブルを用いた多対多の関係(その 2)

前回はアソシエーションを定義するところまで進めました。今回はそのアソシエーションを実際に利用してみます。まずはコントローラーから。 rails g controller employees index showモデルに対応するテンプレートを作成します。 app/views/employees/_emplo…

「お前は何をやったことがあるのか」という問いに答えてみる

まぁ当ブログをお読みの皆さんは、私が Java をメインとしながらいろいろ*1やっていることは既におわかりいただいていると思います。しかしこの業界、「何ができるか」よりも「何をやったか」が重要なのは百も承知です。そこで今回は「私が何をやったことが…

中間テーブルを用いた多対多の関係(その 1)

今「一人の従業員が複数(0 個も含む)の資格を持っている」「ある資格を持っている従業員が複数(0 人も含む)いる」という状況を考えます。これは多対多の関係ですが、RDBMS では多対多の関係をそのまま表現することができないので中間テーブルを用います。ま…

Ruby で階乗

初心のときにありがちな書き方は def fact(n) if n == 0 then 1 else n * fact(n - 1) end end n が負のときどうするの、っていうのはとりあえず置いといて、まぁ再帰を知ってるのはいいことだけど、Ruby ならではのうまい書き方がある。 class Integer def …

規則的な配列を簡単に生成する

例えば 100 以下の偶数の配列を作りたければ even = (0..50).map{ |i| i * 2 } とすればいい。 [1,10,100,1000,10000,100000,1000000] のような 10 のべき乗の配列も (0..6).map{ |i| 10 ** i } で O.K.2013/07/14 追記 : 100 以下の偶数、ということをもう…