SlideShare a Scribd company logo
1 of 79
Download to read offline
F# と Erlang で簡単なゲームを作って
             みている

       pocketberserker


      2012 年 11 月 24 日
お前誰よ?




• 中山 / なかやん / ぺんぎん /
    @pocketberserker
•   どこにでもいるふつーのサーガ大学院生
•   F# / Haskell / Erlang / Scala / TDD / テスト
•   関数プログラミング≒私の人生を変えたもの
•   FSharpx/Scalaz のこんとりびゅーたらしい…
突然ですが質問です
突然ですが質問です



実用っぽい英単語はどれ?
突然ですが質問です



実用っぽい英単語はどれ?
 • practical
突然ですが質問です



実用っぽい英単語はどれ?
 • practical
 • functional
突然ですが質問です



実用っぽい英単語はどれ?
 • practical
 • functional
 • applicative
実際
実際




どれも正解
でも○○こわいなので




おとなしく practical な話(?)をします
• 理論理論したことは話せません、たぶん
• 理論理論したことは話せません、たぶん
• 突っ込みは随時どうぞ
• 理論理論したことは話せません、たぶん
• 突っ込みは随時どうぞ
• 本発表に登場する一部物語はそこそこフィク
 ションです
あるときのこと
あるときのこと




「ぺんぎん君、君の技量を測るために作って欲し
      いものがあるのだが」
渡された仕様
渡された仕様



• お題は簡単なシューティングゲーム
渡された仕様



• お題は簡単なシューティングゲーム
• Win か Mac で動くことが望ましい
渡された仕様



• お題は簡単なシューティングゲーム
• Win か Mac で動くことが望ましい
• 言語、ライブラリ、フレームワーク、プラッ
 トフォームすべて自由
だったら関数プロ
グラミングるしか
   ない!
当初の選択肢
当初の選択肢



• Unity3D + C# + F# (外部ライブラリ)
当初の選択肢



• Unity3D + C# + F# (外部ライブラリ)
• F# + WebSharper
当初の選択肢



• Unity3D + C# + F# (外部ライブラリ)
• F# + WebSharper
• Scala + Play 2 + 何か
当初の選択肢



• Unity3D + C# + F# (外部ライブラリ)
• F# + WebSharper
• Scala + Play 2 + 何か
• フル Haskell でがんがる
結局、F# F# したいので F# + WebSharper を選択
F# って?
F# って?



• Microsoft が開発したマルチパラダイム言語
F# って?



• Microsoft が開発したマルチパラダイム言語
• 静的型付け、関数パラダイム主体
F# って?



• Microsoft が開発したマルチパラダイム言語
• 静的型付け、関数パラダイム主体
• Scala より型推論が強力
F# って?



• Microsoft が開発したマルチパラダイム言語
• 静的型付け、関数パラダイム主体
• Scala より型推論が強力
• 3.0 がこの前でました
F# の実情?
WebSharperって?
WebSharperって?



• 本家曰く “the world’s most versatile web and
 mobile development framework for .NET”
WebSharperって?



• 本家曰く “the world’s most versatile web and
  mobile development framework for .NET”
• F# で書ける
WebSharperって?



• 本家曰く “the world’s most versatile web and
  mobile development framework for .NET”
• F# で書ける
• JavaScript を書かずに JS の機能が使える
WebSharperって?



• 本家曰く “the world’s most versatile web and
  mobile development framework for .NET”
• F# で書ける
• JavaScript を書かずに JS の機能が使える
• HTML5 などもいける
例:よくあるゲームループ

           Unity3D(C#) の例          

public class Hoge : MonoBehaviour
{
    void Update()
    {
        hoge();
    }
}
WebSharper 内でベタ書きすると

              F# の例               

[JavaScript]
let rec gameLoop () =
  async {
    do hoge()
    do! Async.Sleep (1000 / fps)
    do! gameLoop ()
  }
Canvas 使って何か書く                          

[JavaScript]
let hogeCanvas width height =
  let element = Tags.NewTag Canvas []
  let canvas = AsCanvasElement element.Dom
  canvas.Width - width
  canvas.Height - height
  let context = canvas.GetContext 2d

 Async.Start (gameLoop ())

 Div [ Width (string width); Attr.Style float:left ] - [
   Div [ Attr.Style float:center ] - [
     element
     |! OnMouseMove (fun _ arg -
       let offset = JQuery.Of(element.Dom).Offset()
       piyo offset arg.X arg.Y
     )
   ]
 ]
こんな感じで
こんな感じで



• html や JS の知識を仕入れながら書く
こんな感じで



• html や JS の知識を仕入れながら書く
• F#の知識が少しあればそれなりに書ける
こんな感じで



• html や JS の知識を仕入れながら書く
• F#の知識が少しあればそれなりに書ける
• 副作用云々は、作るもの次第で考えたほうが
 いいと思う
こんな感じで



• html や JS の知識を仕入れながら書く
• F#の知識が少しあればそれなりに書ける
• 副作用云々は、作るもの次第で考えたほうが
  いいと思う
• ジェネレートされた JS コードは読まないほ
  うがいい
WebSharper がもっと知りたい型へ
Expert F# 読書会はじめます
和書 (電子書籍もあるよ)
閑話休題
あるとき
あるとき




なかやん「あー、Erlang で何か書きたいなー」
あるとき




なかやん「あー、Erlang で何か書きたいなー」
人物 N「ならゲームのサーバ側 Erlang にすれば?」
あるとき




なかやん「あー、Erlang で何か書きたいなー」
人物 N「ならゲームのサーバ側 Erlang にすれば?」
なかやん「そ れ だ」
Erlang とは
Erlang とは




• エリクソンが開発
Erlang とは




• エリクソンが開発
• 並行処理指向、関数型 (?)、動的型付け
Erlang とは




• エリクソンが開発
• 並行処理指向、関数型 (?)、動的型付け
• コンパイル方式 (型の方面ではないけど)
使用するライブラリ




• rebar:ビルドツール
• cowboy:軽量ウェブサーバ
• jiffy:JSON パーサ
使用するライブラリ (選定理由)




• rebar:ないと始まらない
• cowboy:websocket が書きやすそうだった
• jiffy:速いっぽい
もっと詳しい話とか




voluntas さんの “継続開発のススメ Erlang/OTP 編”
  https://gist.github.com/9ee65f0dfa9b7dd78fde
WebSocket




ウェブサーバとウェブブラウザ間の双方向通信用
         の技術規格
送受信に使う json データ   

{
    x : 0,
    y : 0
}
例:プレイヤー機の座標を送受信



              Erlang 側 (初期化部分)             

 websocket_init(_Any, Req, _Opts) -
     Interval = round(1000 / 30),
     timer:send_interval(Interval, tick),
     Req2 = cowboy_req:compact(Req),
     {ok, Req2, undefined, hibernate}.
例:プレイヤー機の座標を送受信



                Erlang 側 (受信部分)                 

 websocket_handle({text, Msg}, Req, _State) -
     {[{_X, X}, {_Y, Y}]} = jiffy:decode(Msg),
     {ok, Req, {X, Y}};
 websocket_handle(_Any, Req, State) -
     {ok, Req, State}.
例:プレイヤー機の座標を送受信



            Erlang 側 (更新および送信)                       

 websocket_info(tick, Req, {X, Y}) -
     Data = jiffy:encode({[{x, X}, {y, Y}]}),
     {reply, {text, Data}, Req, {X, Y}, hibernate};
 websocket_info(_Info, Req, State) -
     {ok, Req, State, hibernate}.
例:プレイヤー機の座標を送受信
                                       F#側                   

[JavaScript]
  let initSocket context =

    let (|Text|Binary|) (data:obj) =
      match data with
      | :? string as text - Text text
      | binary - Binary (AsArrayBuffer binary)

    let socket = WebSocket(ws://localhost:19860/shooting)

    socket.Onopen - (fun () -
      PlayerShip.init | Json.Stringify | socket.Send
    )

    socket.Onmessage - (fun msg -
      drawBackground context
      match msg.Data with
      | Text text -
        text
        | (Json.Parse  AsInfo)
        | draw context
      | Binary _ - ()
    )

    socket
Erlang を使ってみた感想とか
Erlang を使ってみた感想とか



• OTP を使えば実装したいことのほうに集中で
 きる
Erlang を使ってみた感想とか



• OTP を使えば実装したいことのほうに集中で
  きる
• 慣れればもっとさくっと書けると思う
Erlang を使ってみた感想とか



• OTP を使えば実装したいことのほうに集中で
  きる
• 慣れればもっとさくっと書けると思う
• 高階関数あるし関数型なのだろう・
                 ・・たぶん
ちなみに
ちなみに



• Erlang はじめて 3 週間くらいだった
ちなみに



• Erlang はじめて 3 週間くらいだった
• 基本は飛行機本と web 上にあるサンプルで
 学ぶ
ちなみに



• Erlang はじめて 3 週間くらいだった
• 基本は飛行機本と web 上にあるサンプルで
  学ぶ
• 後はひたすら書く
飛行機本
ではデモ・
    ・・といきたかったけど




  間に合いませんでした orz
まとめ


• 手段を目的化して FP を学ぶのもありだと思
  います
• 自分にあった関数型言語を見つける(当たり
  前だけど FP=Haskell ではない)
• 気になったら理論へ進む
• JavaScript は生成するもの(キリッ
ご清聴ありがとうございました。

More Related Content

What's hot

すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」Shin Ise
 
about Thrift
about Thriftabout Thrift
about ThriftNaoya Ito
 
第3回BDD勉強会
第3回BDD勉強会第3回BDD勉強会
第3回BDD勉強会zakihaya
 
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りRubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りKouhei Sutou
 
2012.11.17 CLR/H&札幌C++勉強会 発表資料「部分文字列の取得を 効率よく!楽に! - fundoshi.hppの紹介と今後の予定 -」
2012.11.17 CLR/H&札幌C++勉強会 発表資料「部分文字列の取得を効率よく!楽に! - fundoshi.hppの紹介と今後の予定 -」2012.11.17 CLR/H&札幌C++勉強会 発表資料「部分文字列の取得を効率よく!楽に! - fundoshi.hppの紹介と今後の予定 -」
2012.11.17 CLR/H&札幌C++勉強会 発表資料「部分文字列の取得を 効率よく!楽に! - fundoshi.hppの紹介と今後の予定 -」Hiro H.
 
BDD勉強会 第6回
BDD勉強会 第6回BDD勉強会 第6回
BDD勉強会 第6回zakihaya
 
phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)tj-yoshino
 
Apache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject IntrospectionでApache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject IntrospectionでKouhei Sutou
 
クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料
クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料
クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料mametter
 
Apilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlabApilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlabYutaka Kobayshi
 
Perl logging
Perl loggingPerl logging
Perl loggingkeroyonn
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011TokyoRyuichi Ueda
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発emasaka
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRubyemasaka
 
Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5azumakuniyuki 🐈
 
オセロゲームでコードゴルフ
オセロゲームでコードゴルフオセロゲームでコードゴルフ
オセロゲームでコードゴルフ洸人 高橋
 
超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)mametter
 
Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編takeuchi-tk
 

What's hot (20)

すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
 
about Thrift
about Thriftabout Thrift
about Thrift
 
第3回BDD勉強会
第3回BDD勉強会第3回BDD勉強会
第3回BDD勉強会
 
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りRubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入り
 
2012.11.17 CLR/H&札幌C++勉強会 発表資料「部分文字列の取得を 効率よく!楽に! - fundoshi.hppの紹介と今後の予定 -」
2012.11.17 CLR/H&札幌C++勉強会 発表資料「部分文字列の取得を効率よく!楽に! - fundoshi.hppの紹介と今後の予定 -」2012.11.17 CLR/H&札幌C++勉強会 発表資料「部分文字列の取得を効率よく!楽に! - fundoshi.hppの紹介と今後の予定 -」
2012.11.17 CLR/H&札幌C++勉強会 発表資料「部分文字列の取得を 効率よく!楽に! - fundoshi.hppの紹介と今後の予定 -」
 
BDD勉強会 第6回
BDD勉強会 第6回BDD勉強会 第6回
BDD勉強会 第6回
 
phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)
 
Apache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject IntrospectionでApache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject Introspectionで
 
クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料
クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料
クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料
 
Apilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlabApilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlab
 
Perl logging
Perl loggingPerl logging
Perl logging
 
Python入門
Python入門Python入門
Python入門
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5
 
WCO2012「PHP教室」
WCO2012「PHP教室」WCO2012「PHP教室」
WCO2012「PHP教室」
 
オセロゲームでコードゴルフ
オセロゲームでコードゴルフオセロゲームでコードゴルフ
オセロゲームでコードゴルフ
 
超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)
 
Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編
 

Viewers also liked

第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」Kazkuki Oakamoto
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析pocketberserker
 
私とTDDと研究と(TDDBC横浜LT)
私とTDDと研究と(TDDBC横浜LT)私とTDDと研究と(TDDBC横浜LT)
私とTDDと研究と(TDDBC横浜LT)pocketberserker
 
Scala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LTScala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LTpocketberserker
 
F#のコンピュテーション式
F#のコンピュテーション式F#のコンピュテーション式
F#のコンピュテーション式pocketberserker
 
F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?pocketberserker
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateepocketberserker
 

Viewers also liked (10)

第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析
 
GParsの?Actor Model
GParsの?Actor ModelGParsの?Actor Model
GParsの?Actor Model
 
私とTDDと研究と(TDDBC横浜LT)
私とTDDと研究と(TDDBC横浜LT)私とTDDと研究と(TDDBC横浜LT)
私とTDDと研究と(TDDBC横浜LT)
 
Scala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LTScala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LT
 
F#のコンピュテーション式
F#のコンピュテーション式F#のコンピュテーション式
F#のコンピュテーション式
 
F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIteratee
 
TDDBC東京 1.6 LT
TDDBC東京 1.6 LTTDDBC東京 1.6 LT
TDDBC東京 1.6 LT
 
TDDを研ぎ究める
TDDを研ぎ究めるTDDを研ぎ究める
TDDを研ぎ究める
 

Similar to F#+Erlangで簡単なシューティングゲームを作ってみている

asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesNoritada Shimizu
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3Masahiro Wakame
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiTomohiro Kumagai
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールNobuhisa Koizumi
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうEsehara Shigeo
 
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsFunctional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsShogo Sensui
 
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5Nishida Kansuke
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるKoichi Sakata
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...Naoya Ito
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talkmitamex4u
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~decode2016
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)parrotstudio
 
Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語Taku Miyakawa
 
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Ra Zon
 
Favtile ~never write JS again~
Favtile ~never write JS again~Favtile ~never write JS again~
Favtile ~never write JS again~hanachin
 
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Ra Zon
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』H2O Space. Co., Ltd.
 

Similar to F#+Erlangで簡単なシューティングゲームを作ってみている (20)

ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
 
らくちん Go言語
らくちん Go言語らくちん Go言語
らくちん Go言語
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
 
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsFunctional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.js
 
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
 
Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語
 
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
 
Favtile ~never write JS again~
Favtile ~never write JS again~Favtile ~never write JS again~
Favtile ~never write JS again~
 
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 

F#+Erlangで簡単なシューティングゲームを作ってみている