Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/124-db2aac23

-件のトラックバック

-件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Scala(5)

はじめてのScala―「関数型+オブジェクト指向」の次世代言語! (I・O BOOKS)

第6章 Scalaが勧める「関数型」とは

rubyで書くと、

#!/usr/bin/ruby

class Kuku
def initialize(x,y)
@x=x
@y=y
end

def calc
yield(@x,@y)+(@x*@y).to_s
end
end

kuku68=Kuku.new(6,8)
puts kuku68.calc{|a,b| a.to_s+'*'+b.to_s+'='}
puts Kuku.new(7,2).calc{|a,b| a.to_s+'かける'+b.to_s+'は'}

これのブロックパラメータの部分(赤字)、これを変数とできるのScalaの特徴らしい。
実際にScalaで記した例は、書籍の【リスト6-14】を参考にされたし。

しかし、これ本当にrubyだと変数として定義できないかな?
→教えて!gooで聞いたら、出来るって。
 http://oshiete.goo.ne.jp/qa/5892592.html

あと、javascriptなんかでも、あまり意識しないで使ってたと思う。例えば、こんな感じ。

<html>
<script type='text/javascript' src='prototype.js'></script>
<script type='text/javascript'>
var Hoge = Class.create({
initialize: function(a,b){
this.a=a;
this.b=b;
},

calc: function(f){
return f.call(this,this.a,this.b) + this.a*this.b;
}
});
f1 = function(a,b){
return a+"*"+b+"=";
};
f2 = function(a,b){
return a+"かける"+b+"は";
};
document.write(new Hoge(6,8).calc(f1));
document.write(new Hoge(7,2).calc(f2));
</script>
</html>


Scalaはなにがそんなにスゴいのかわからなくなってきた。


この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/124-db2aac23

0件のトラックバック

0件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

kovayashi

Author:kovayashi
・嫌いなもの
 →好きなもの

・インストール
 →バンドル
・バックアップ
 →アップロード
・努力
 →チート

最近のトラックバック

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。