Similar documents
PowerPoint Presentation

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

VB.NETコーディング標準

K227 Java 2

Microsoft Word - keisankigairon.ch doc

ALG ppt

untitled

文字列操作と正規表現

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

Microsoft PowerPoint ppt

JAVA とテンプレート

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

tkk0408nari

: : : TSTank 2

Java (7) Lesson = (1) 1 m 3 /s m 2 5 m 2 4 m 2 1 m 3 m 1 m 0.5 m 3 /ms 0.3 m 3 /ms 0.6 m 3 /ms 1 1 3

Java (5) 1 Lesson 3: x 2 +4x +5 f(x) =x 2 +4x +5 x f(10) x Java , 3.0,..., 10.0, 1.0, 2.0,... flow rate (m**3/s) "flow

2015-s6-4g-pocket-guidebook_H1-4.indd

ユニット・テストの概要


2. データ構造ヒープに保存するデータは 番号付けられて保存される 従って リスト L として保存することとする 3. アルゴリズム 3.1. 要素の追加新しい要素の追加は リストの終端に置くことで開始する つまり 最下層の一番右 または新たに最下層を生成してその一番左となる この後 この要素を正し

オブジェクト脳のつくり方

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

226

1. はじめに 二分木ヒープ 様々なアルゴリズムにおいて ある要素の集合またはリストから 最小 な要素を取り 出す必要がある そのような場合に使われる標準的データ構造が二分木ヒープ (binary heap) である あるオブジェクトO を考える そのオブジェクトは ラベル O. label と値

r1.dvi

Gartner Day

Java演習(4) -- 変数と型 --

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

text_08.dvi

新・明解Java入門

10K pdf

シミュレーションの簡単な例 GUI 無しのシミュレーションを作る GUI を作る パラメタを設定するデモンストレーションをする 2 オブジェクト指向プログラミング特論

(Eclipse\202\305\212w\202\324Java2\215\374.pdf)

ALG2012-A.ppt

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~ alse

JavaプログラミングⅠ

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1

Vector Vector Vector Vector() Vector(int n) n Vector(int n,int delta) n delta

二分木ヒープとは 集合 リストから 最小な 要素を取り出す 二分木ヒープは そのための標準的データ構造 二分木ヒープを保存するデータ構造 二分木ヒープの操作のメソッド 対象となるデータクラス 識別のためのlabelフィールド 値を保持するvalueフィールド

6-1

JavaプログラミングⅠ

アルゴリズムとデータ構造1

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

明解Javaによるアルゴリズムとデータ構造

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

デジタル表現論・第4回

Microsoft Word - NonGenList.doc

,,,,., C Java,,.,,.,., ,,.,, i

スライド 1

PowerPoint プレゼンテーション

グラフと組み合わせ 課題 7 ( 解答例 ) 2013/5/27 1 列挙 n 個の文字の集合 { } S = a, a,, an の全てからなる文字列 つまり同じ文字を含まない 長さ n の文字列を列挙する 方法を考える 1. 何通りの文字列があるかを答えなさい また そのことが正しい


PPP_‚Ü‚Æ‚ß.pdf

I java A

(Java/FX ) Java CD Java version Java VC++ Python Ruby Java Java Eclipse Java Java 3 Java for Everyone 2 10 Java Midi Java JavaFX Shape Canvas C

今回の内容 グラフとオブジェクト指向プログラミング Java を使う理由 Java の基本 Javaのライブラリ 開発 実行 クラスの再利用 クラス継承 抽象クラス 開発の要点

1-4 int a; std::cin >> a; std::cout << "a = " << a << std::endl; C++( 1-4 ) stdio.h iostream iostream.h C++ include.h 1-4 scanf() std::cin >>

MPI MPI MPI.NET C# MPI Version2

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

データ構造とアルゴリズム論

ALG2012-C.ppt

Client Client public void sendobject(object message) String String Web Container String RemoteEndpoint String Endpoint throwsioexception, EncodeExcept

ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2

解きながら学ぶJava入門編

ALG ppt

r02.dvi

TopLink å SampleClient.java... 5 Ò readallsample() querysample() cachesample() Ç..

ohp02.dvi

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

ALG2012-F.ppt

8 if switch for while do while 2

Microsoft Word - NonGenTree.doc

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

Exam : 1z0-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get Latest & Valid 1z0-809-JPN Exam's Question and Answe

untitled

BASIC / / BA- SIC Web 1/10 1/10 / / JavaScript

test.gby

untitled

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

double 2 std::cin, std::cout 1.2 C fopen() fclose() C++ std::fstream 1-3 #include <fstream> std::fstream fout; int a = 123; fout.open( "data.t

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

TopLink È... 3 TopLink...5 TopLink åø... 6 TopLink å Workbench O/R ~... 8 Workbench À ~... 8 Foundation Library å... 8 TopL

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

明解Javaによるアルゴリズムとデータ構造

明解Java入門編


Kyosuke MOROHASHI

Java updated

Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド

Java演習(2) -- 簡単なプログラム --

Java 3 p.2 3 Java : boolean Graphics draw3drect fill3drect C int C OK while (1) int boolean switch case C Calendar java.util.calendar A

デジタル表現論・第6回

Microsoft PowerPoint - ruby_instruction.ppt

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

JAVA H13 OISA JAVA 1

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

untitled

動的なデザインパターン

Transcription:

{:from => Java, :to => Ruby } Java Ruby KAKUTANI Shintaro; Eiwa System Management, Inc.; a strong Ruby proponent

http://kakutani.com

http://www.amazon.co.jp/o/asin/4873113202/kakutani-22

http://www.amazon.co.jp/o/asin/477413256x/kakutani-22

Agile

And there's business value in fun - after all motivation is a major factor in programmer productivity. - Martin Fowler

100%

78% 22%

89% 11%

Half empty or half full?

http://www.amazon.co.jp/o/asin/4873113202/kakutani-22

http://www.ruby-lang.org/

RubyKaigi 2007

Photo by snoozer-05: http://www.flickr.com/photos/snoozer/539389108/

You must love your software tools 自分のツールを 愛さねばならない

I LOVE RUBY 私はRubyが大好きだ

Ruby-do

Ruby has values

Be nice to developers Be clear and readable Be flexible and agile Be open

Be nice to developers

Be clear and readable

DEMO

class Team attr_accessor :name, :wins, :losses def initialize(name, wins, losses) @name, @wins, @losses = name, wins, losses end end teams = [ Team.new("Tigers", 12, 4), # winning Team.new("Giants", 4, 12), Team.new("Dragons", 10, 6), # winning Team.new("Carp", 7, 9)]

load "team.rb" winning_teams = teams.select do team end team.losses < team.wins winning_teams.each do team end puts team.name

class Team attr_accessor :name, :wins, :losses def initialize(name, wins, losses) @name, @wins, @losses = name, wins, losses end end teams = [ Team.new("Tigers", 12, 4), # winning Team.new("Giants", 4, 12), Team.new("Dragons", 10, 6), # winning Team.new("Carp", 7, 9)] winning_teams = teams.select do team team.losses < team.wins end winning_teams.each do team puts team.name end

package com.kakutani.java2ruby.sample; import java.util.arraylist; import java.util.iterator; import java.util.list; public class WinningTeamsFinder<T> { public static class Team { private String name; private int wins, losses; public Team(String name, int wins, int losses) { this.name = name;this.wins = wins;this.losses = losses; } } public int getlosses() {return losses;} public void setlosses(int losses) { this.losses = losses;} public String getname() {return name;} public void setname(string name) {this.name = name;} public int getwins() {return wins;} public void setwins(int wins) {this.wins = wins;} public interface BooleanMatcher<T> { public boolean ismatch(t obj); }...

... public List<T> findall(list<t> list, BooleanMatcher<T> matcher) { List<T> result = new ArrayList<T>(); for(iterator<t> all = list.iterator(); all.hasnext();){ T each = all.next(); if (matcher.ismatch(each)) result.add(each); } return result; } public static void main(string[] args) { List<Team> teams = new ArrayList<Team>(); teams.add(new Team("Tigers", 12, 4)); /* winning */ teams.add(new Team("Giants", 4, 12)); teams.add(new Team("Dragons", 10, 6)); /* winning */ teams.add(new Team("Carp", 7, 9)); List<Team> winningteams = new WinningTeamsFinder<Team>().findAll(teams,new BooleanMatcher<Team>() { public boolean ismatch(team team) { return team.getlosses() < team.getwins(); }}); for(iterator<team> all = winningteams.iterator(); all.hasnext();){ Team each = all.next(); System.out.println(each.getName()); }}}

Be flexible and agile

Be open

Be nice to developers Be clear and readable Be flexible and agile Be open

Do you have any questions?