読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

『プログラミングClojure』2.3関数の無記名関数を Python と Ruby でもやってみたメモ

Clojure Python Ruby

Clojure 1.4

(defn make-greeter [greeting-prefix]
  (fn [username] (str greeting-prefix ", " username)))

(def hello-greeting (make-greeter "Hello"))

(hello-greeting "world") ;;-> "Hello, world"

((make-greeter "Howdy") "pardner") ;;-> "Howdy, pardner"

Python 2.7

def make_greeter(greeting_prefix):
    return lambda user: greeting_prefix + ", " + user

hello_greting = make_greeter("Hello")

print hello_greting("world") #->  Hello, world

print make_greeter("Howdy")("pardner") #-> Howdy, pardner

Ruby 1.9

def make_greeter(greeting_prefix)
  lambda {|usernmae| greeting_prefix + ", " + usernmae}
end

hello_greeting = make_greeter("Hello")

puts hello_greeting.call("world") #->  Hello, world

puts make_greeter("Howdy").call("pardner") #-> Howdy, pardner