2013 Minori Yamashita [email protected]
ターゲットを動的オブジェクト指向プログラマに絞って、関数指向の考え方を説明します。 コードサンプルでは、オブジェクト指向には CoffeeScript ^1、関数指向には Clojure を使用しますが、文章は汎用的に書いてあります。
最下部に用語集があるので、わかりづらい単語、表現があったら参照してください。
2013 Minori Yamashita [email protected]
ターゲットを動的オブジェクト指向プログラマに絞って、関数指向の考え方を説明します。 コードサンプルでは、オブジェクト指向には CoffeeScript ^1、関数指向には Clojure を使用しますが、文章は汎用的に書いてあります。
最下部に用語集があるので、わかりづらい単語、表現があったら参照してください。
| #encoding: utf-8 | |
| class Janken | |
| def self.hands | |
| %w(グー チョキ パー) | |
| end | |
| def self.win | |
| [%w(グー チョキ), %w(チョキ パー), %w(パー グー)] | |
| end |
| #!/usr/bin/env ruby | |
| ARGV.instance_eval do | |
| exit if empty? | |
| width = map(&:size).max | |
| border = "+#{'-' * width}+" | |
| puts border | |
| each {|line| | |
| puts format("|%-*s|", width, line), border |
| fizzer = [nil, nil, 'Fizz'].cycle | |
| buzzer = [nil, nil, nil, nil, 'Buzz'].cycle | |
| 1.upto(100) { |i| | |
| fizz, buzz = fizzer.next, buzzer.next | |
| puts fizz || buzz ? "#{fizz}#{buzz}" : i | |
| } |
| source 'http://rubygems.org' | |
| gem 'rails', :git => 'git://github.com/rails/rails.git' | |
| gem 'journey', :git => 'git://github.com/rails/journey.git' | |
| gem 'arel', :git => 'git://github.com/rails/arel.git' | |
| gem 'activerecord-deprecated_finders' , :git => 'git://github.com/rails/activerecord-deprecated_finders.git' | |
| gem 'sqlite3' | |
| group :assets do |
| class Tab | |
| constructor: -> | |
| @$tabs = ($ '.tab') | |
| @$sections = ($ '.section') | |
| @_idx = 0 | |
| current_tab: => | |
| @$tabs.eq(@_idx) | |
| current_section: => |