SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
FunScript 
F# to JavaScript with type providers 
FunScriptって 
何でしょうか?
FunScript 
F# to JavaScript with type providers 
FunScriptとは… 
またまた他のJavaScript 
コンパイラーでございます。 
また?本当にまた? 
もういいじゃない?
FunScript 
F# to JavaScript with type providers 
現在はプログラミング言語はすべて 
JavaScriptへコンパイルできるらしい。 
関数型言語も多いです: 
o Elm 
o LiveScript 
o PureScript 
o Fay 
そしたらFunScriptを使用するのはどの 
メリットがありますか? 
初めに…
FunScript 
F# to JavaScript with type providers 
あなたも 
F#erである 
分かるだろう
FunScript 
F# to JavaScript with type providers 
F#(エフ シャープ)はオープンソース、 
タダだよ!タダ! 
関数型言語です。 
しかもマルチパラダイム 
F#はLinux、Mac OS X 、Android、iOS、Windows 
又はHTML 5やGPUなどで実行できます。 
何か世界を征服したいときには 
必ずいいこと… じゃない? 
説明はもう結構です!
FunScript 
F# to JavaScript with type providers 
見本をみせろ
FunScript 
F# to JavaScript with type providers 
オートコンプリートとツールチップを備えた 
強力なIDEでF#のクライアントコードを書けます。 
Intellisenseは中毒になる 
プラグインはいらない
FunScript 
F# to JavaScript with type providers 
F#コンパイラーは友達です。ずっとあなたの 
エラーを見せてくれるので大変助かります! 
同僚なら殺したい気分になるが… 
いやなんでもない!
FunScript 
F# to JavaScript with type providers 
関数型言語の機能 
• カリー化機能を持つ第一級関数 
• イミュータブルなオブジェクト 
• 再帰呼出し 
• パターンマッチ 
• 型推論 
楽な静的型 
システム
FunScript 
F# to JavaScript with type providers 
永続データ構造 
•タプル 
•レコード 
•判別共用体 
•クラスとモジュール 
•F#コレクション型 
o list 
o map 
o set 
o seq 
IEnumerableと 
書かなくていい
FunScript 
F# to JavaScript with type providers 
.NETコレクション 
• Array 
• ResizeArray(ミュータブルなリスト) 
• Dictionary JSで普通の配列とPOJOになるので 
ブラウザコードに対応しています
FunScript 
F# to JavaScript with type providers 
FunScriptは便利な.NETクラスのメソッドを 
JavaScriptにコンパイルもできます。 
• String 
• Regular Expressions 
• DateTime / TimeSpan 
• WebRequest 色々なプラットフォームでRegexなど 
の使い方を覚えるのは大変だと 
思っているのは…私だけじゃないよね
FunScript 
F# to JavaScript with type providers 
ブラウザで.NET正規表現の使用例
FunScript 
F# to JavaScript with type providers 
F#の特徴 
o 型プロバイダ! 
o 測定単位 
o コンピュテーション式 
ここをクリックすると 
素晴らしいビデオが 
見れるよ(英語版)
FunScript 
F# to JavaScript with type providers 
さらにFunScript.HTML拡張を 
使用する場合はあなたのF#/.NETスキル 
を使ってHTML5ウェブアプリを作成 
することかできます。 
例えば…
FunScript 
F# to JavaScript with type providers 
リアクティブプログラミング(その1) 
HTMLオブジェクトは 
それぞれのIObservable 
を生成する拡張プロパティ 
があります
FunScript 
F# to JavaScript with type providers 
リアクティブプログラミング(その2) 
カプセル化された状態
FunScript 
F# to JavaScript with type providers 
リアクティブプログラミング(その3) 
DateTime 
Stringフォーマット 
この拡張メソッドは 
簡単に他のプラット 
フォーム向けにもできる
FunScript 
F# to JavaScript with type providers 
非同期ワークフロー(その1) 
LINQ to SQLとWeb APIとクラインコードの間に型共有できます。 
LINQとWeb APIとFunScriptは 
つまらないマーシャリング 
の仕事をやってくれる
FunScript 
F# to JavaScript with type providers 
非同期ワークフロー(その2) 
非同期ワークフローで有限オートマトンを 
表現できますからイベント処理も 
より便利になります。 
「制御の反転」のことを忘れて 
自分のプログラムフロー 
自分で制御しましょう!
FunScript 
F# to JavaScript with type providers 
非同期ワークフロー(その3) 
フラッグはいらない!
FunScript 
F# to JavaScript with type providers 
JSイベント 
処理が好き 
な人はいる 
だろうが
FunScript 
F# to JavaScript with type providers 
という訳でFunScriptとFunScript.HTML 
を使用するメリットは: 
o エラーを減る 
o コードを再利用 
でも一番大事なのは… 
o スキルを再利用
FunScript 
F# to JavaScript with type providers 
これは素晴らしいが… 
とても便利なJavaScriptライブラリが多いです。 
それを利用することをやめるしかないですか? 
違います! 
FunScriptはNuGetを通じてTypeScriptリポジトリ 
にあるすべて型定義のラッパーを提供しています。
FunScript 
F# to JavaScript with type providers
FunScript 
F# to JavaScript with type providers 
FunScript.HTMLでは一つのJavaScript 
MVCフレームワークとより 
深い統合をしています: 
Ractive.js 
詳しくはホームページを 
ご覧ください(英語版)
FunScript 
F# to JavaScript with type providers 
イベントと状態の更新も 
非同期的に処理できる 
カプセル化された状態
FunScript 
F# to JavaScript with type providers 
必要ならば簡単にFunScriptを 
拡張することも可能です。
FunScript 
F# to JavaScript with type providers 
実際にF#からJSへもう一つの 
コンパイラーがあります: 
IntelliFactoryの開発したWebSharper。 
FunScriptと違ってWebSharperは 
フルスケールのウェブフレームワークです。 
より詳しい比較が続きます。
FunScript 
F# to JavaScript with type providers 
FUNSCRIPT 
機能 
上記 
WEBSHARPER 
機能 
すみませんが使用 
したことはありません 
サイトをご覧ください 
マジかよ
FunScript 
F# to JavaScript with type providers 
そろそろ 
SAYONARA 
BABY 
スピン語版でこういう風に言っていましたよ
FunScript 
F# to JavaScript with type providers 
FunScriptはZach Brayが作成した 
プロジェクトです。F#のコミュニティ 
からも貢献されています。 
▪ Tomas Petricek 
▪ Robert Pickering 
▪ James Freiwirth 
マーベル 
ヒーローの 
名前っぽく 
ない? 
詳細はfunscript.info
FunScript 
F# to JavaScript with type providers 
そして、プレゼンテーションは 
こういう者が作成致しました: 
Alfonso García-Caro 
@alfonsogcnunez 
github.com/alfonsogarciacaro 
それでは… 
FunScriptの 
質問があり 
ましたら 
日本語でも 
お気軽に 
ご連絡 
ください
FunScript 
F# to JavaScript with type providers 
一体 
何を待って 
いるの

Más contenido relacionado

La actualidad más candente

C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜UnityTechnologiesJapan002
 
MfcLightToolkit for small MFC apps
MfcLightToolkit for small MFC appsMfcLightToolkit for small MFC apps
MfcLightToolkit for small MFC appsTakaaki Suzuki
 
RxShowcase -for ignote & i-Jupiter-
RxShowcase -for ignote & i-Jupiter-RxShowcase -for ignote & i-Jupiter-
RxShowcase -for ignote & i-Jupiter-Takaaki Suzuki
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話Wooram Yang
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)bleis tift
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)parrotstudio
 
20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使う20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使うRyo Nagai
 
Web APIでThriftをシリアライザとして使う
Web APIでThriftをシリアライザとして使うWeb APIでThriftをシリアライザとして使う
Web APIでThriftをシリアライザとして使うh_kishi
 
PyCon JP 2014 plone terada
PyCon JP 2014 plone teradaPyCon JP 2014 plone terada
PyCon JP 2014 plone teradaManabu Terada
 
Pipenvのご紹介 v2
Pipenvのご紹介 v2Pipenvのご紹介 v2
Pipenvのご紹介 v2C Y
 
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45civic Sasaki
 
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46civicpg
 
今どきのPerl開発にvimを対応させる
今どきのPerl開発にvimを対応させる今どきのPerl開発にvimを対応させる
今どきのPerl開発にvimを対応させるKenta Kase
 
anything-php-funcref-perl.el
anything-php-funcref-perl.elanything-php-funcref-perl.el
anything-php-funcref-perl.elKenichirou Oyama
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドkeroyonn
 
いよいよPHPerもリーンで行こう
いよいよPHPerもリーンで行こういよいよPHPerもリーンで行こう
いよいよPHPerもリーンで行こうTsutomu Chikuba
 
Nom de fonction français
Nom de fonction françaisNom de fonction français
Nom de fonction françaishajikami
 
Sinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPythonSinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPythonkuroneko1988
 
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズMasayuki KaToH
 

La actualidad más candente (20)

C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
 
MfcLightToolkit for small MFC apps
MfcLightToolkit for small MFC appsMfcLightToolkit for small MFC apps
MfcLightToolkit for small MFC apps
 
RxShowcase -for ignote & i-Jupiter-
RxShowcase -for ignote & i-Jupiter-RxShowcase -for ignote & i-Jupiter-
RxShowcase -for ignote & i-Jupiter-
 
ReactiveSignalR
ReactiveSignalRReactiveSignalR
ReactiveSignalR
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
 
20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使う20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使う
 
Web APIでThriftをシリアライザとして使う
Web APIでThriftをシリアライザとして使うWeb APIでThriftをシリアライザとして使う
Web APIでThriftをシリアライザとして使う
 
PyCon JP 2014 plone terada
PyCon JP 2014 plone teradaPyCon JP 2014 plone terada
PyCon JP 2014 plone terada
 
Pipenvのご紹介 v2
Pipenvのご紹介 v2Pipenvのご紹介 v2
Pipenvのご紹介 v2
 
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
 
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
 
今どきのPerl開発にvimを対応させる
今どきのPerl開発にvimを対応させる今どきのPerl開発にvimを対応させる
今どきのPerl開発にvimを対応させる
 
anything-php-funcref-perl.el
anything-php-funcref-perl.elanything-php-funcref-perl.el
anything-php-funcref-perl.el
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
 
いよいよPHPerもリーンで行こう
いよいよPHPerもリーンで行こういよいよPHPerもリーンで行こう
いよいよPHPerもリーンで行こう
 
Nom de fonction français
Nom de fonction françaisNom de fonction français
Nom de fonction français
 
Sinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPythonSinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPython
 
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ
 

Similar a FunScript:F#からJavaScriptへのコンパイラー

PHPカンファレンス2015
PHPカンファレンス2015PHPカンファレンス2015
PHPカンファレンス2015Daisuke Kasuya
 
WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話
WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話
WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話keitasudo1
 
Rのコードをキレイに見せたい
Rのコードをキレイに見せたいRのコードをキレイに見せたい
Rのコードをキレイに見せたいmangantempy
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~Fujio Kojima
 
今日から始めるLaravel
今日から始めるLaravel今日から始めるLaravel
今日から始めるLaravelMasaru Matsuo
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!Jun-ichi Sakamoto
 
〜laravel で学ぶ MVC
 〜laravel で学ぶ MVC 〜laravel で学ぶ MVC
〜laravel で学ぶ MVCmikakane
 
Final LINQ extensions III
Final LINQ extensions IIIFinal LINQ extensions III
Final LINQ extensions IIIKouji Matsui
 
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術Yu Nobuoka
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementationsmasahitojp
 
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Roy Kim
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い sasezaki
 
Symfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source CodeSymfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source CodeHidenori Goto
 
俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布Masayuki KaToH
 
関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013Esehara Shigeo
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」Preferred Networks
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能Tadahiro Ishisaka
 
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1Atsushi Tadokoro
 
TypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリTypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリprogre
 

Similar a FunScript:F#からJavaScriptへのコンパイラー (20)

PHPカンファレンス2015
PHPカンファレンス2015PHPカンファレンス2015
PHPカンファレンス2015
 
WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話
WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話
WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話
 
Rのコードをキレイに見せたい
Rのコードをキレイに見せたいRのコードをキレイに見せたい
Rのコードをキレイに見せたい
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
 
今日から始めるLaravel
今日から始めるLaravel今日から始めるLaravel
今日から始めるLaravel
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 
〜laravel で学ぶ MVC
 〜laravel で学ぶ MVC 〜laravel で学ぶ MVC
〜laravel で学ぶ MVC
 
Final LINQ extensions III
Final LINQ extensions IIIFinal LINQ extensions III
Final LINQ extensions III
 
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
Symfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source CodeSymfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source Code
 
俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布俺と今年請けた仕事のテック分布
俺と今年請けた仕事のテック分布
 
F#で数独を解く
F#で数独を解くF#で数独を解く
F#で数独を解く
 
関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
 
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
 
TypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリTypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリ
 

Más de Alfonso Garcia-Caro

Más de Alfonso Garcia-Caro (6)

F# for Scala developers
F# for Scala developersF# for Scala developers
F# for Scala developers
 
Functional Programming in C# and F#
Functional Programming in C# and F#Functional Programming in C# and F#
Functional Programming in C# and F#
 
Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!
 
FRP with Ractive and RxJS
FRP with Ractive and RxJSFRP with Ractive and RxJS
FRP with Ractive and RxJS
 
Madrid F# Meetup: Introduction to F#
Madrid F# Meetup: Introduction to F#Madrid F# Meetup: Introduction to F#
Madrid F# Meetup: Introduction to F#
 
FunScript: Why bother?
FunScript: Why bother?FunScript: Why bother?
FunScript: Why bother?
 

Último

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Último (12)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

FunScript:F#からJavaScriptへのコンパイラー

  • 1. FunScript F# to JavaScript with type providers FunScriptって 何でしょうか?
  • 2. FunScript F# to JavaScript with type providers FunScriptとは… またまた他のJavaScript コンパイラーでございます。 また?本当にまた? もういいじゃない?
  • 3. FunScript F# to JavaScript with type providers 現在はプログラミング言語はすべて JavaScriptへコンパイルできるらしい。 関数型言語も多いです: o Elm o LiveScript o PureScript o Fay そしたらFunScriptを使用するのはどの メリットがありますか? 初めに…
  • 4. FunScript F# to JavaScript with type providers あなたも F#erである 分かるだろう
  • 5. FunScript F# to JavaScript with type providers F#(エフ シャープ)はオープンソース、 タダだよ!タダ! 関数型言語です。 しかもマルチパラダイム F#はLinux、Mac OS X 、Android、iOS、Windows 又はHTML 5やGPUなどで実行できます。 何か世界を征服したいときには 必ずいいこと… じゃない? 説明はもう結構です!
  • 6. FunScript F# to JavaScript with type providers 見本をみせろ
  • 7. FunScript F# to JavaScript with type providers オートコンプリートとツールチップを備えた 強力なIDEでF#のクライアントコードを書けます。 Intellisenseは中毒になる プラグインはいらない
  • 8. FunScript F# to JavaScript with type providers F#コンパイラーは友達です。ずっとあなたの エラーを見せてくれるので大変助かります! 同僚なら殺したい気分になるが… いやなんでもない!
  • 9. FunScript F# to JavaScript with type providers 関数型言語の機能 • カリー化機能を持つ第一級関数 • イミュータブルなオブジェクト • 再帰呼出し • パターンマッチ • 型推論 楽な静的型 システム
  • 10. FunScript F# to JavaScript with type providers 永続データ構造 •タプル •レコード •判別共用体 •クラスとモジュール •F#コレクション型 o list o map o set o seq IEnumerableと 書かなくていい
  • 11. FunScript F# to JavaScript with type providers .NETコレクション • Array • ResizeArray(ミュータブルなリスト) • Dictionary JSで普通の配列とPOJOになるので ブラウザコードに対応しています
  • 12. FunScript F# to JavaScript with type providers FunScriptは便利な.NETクラスのメソッドを JavaScriptにコンパイルもできます。 • String • Regular Expressions • DateTime / TimeSpan • WebRequest 色々なプラットフォームでRegexなど の使い方を覚えるのは大変だと 思っているのは…私だけじゃないよね
  • 13. FunScript F# to JavaScript with type providers ブラウザで.NET正規表現の使用例
  • 14. FunScript F# to JavaScript with type providers F#の特徴 o 型プロバイダ! o 測定単位 o コンピュテーション式 ここをクリックすると 素晴らしいビデオが 見れるよ(英語版)
  • 15. FunScript F# to JavaScript with type providers さらにFunScript.HTML拡張を 使用する場合はあなたのF#/.NETスキル を使ってHTML5ウェブアプリを作成 することかできます。 例えば…
  • 16. FunScript F# to JavaScript with type providers リアクティブプログラミング(その1) HTMLオブジェクトは それぞれのIObservable を生成する拡張プロパティ があります
  • 17. FunScript F# to JavaScript with type providers リアクティブプログラミング(その2) カプセル化された状態
  • 18. FunScript F# to JavaScript with type providers リアクティブプログラミング(その3) DateTime Stringフォーマット この拡張メソッドは 簡単に他のプラット フォーム向けにもできる
  • 19. FunScript F# to JavaScript with type providers 非同期ワークフロー(その1) LINQ to SQLとWeb APIとクラインコードの間に型共有できます。 LINQとWeb APIとFunScriptは つまらないマーシャリング の仕事をやってくれる
  • 20. FunScript F# to JavaScript with type providers 非同期ワークフロー(その2) 非同期ワークフローで有限オートマトンを 表現できますからイベント処理も より便利になります。 「制御の反転」のことを忘れて 自分のプログラムフロー 自分で制御しましょう!
  • 21. FunScript F# to JavaScript with type providers 非同期ワークフロー(その3) フラッグはいらない!
  • 22. FunScript F# to JavaScript with type providers JSイベント 処理が好き な人はいる だろうが
  • 23. FunScript F# to JavaScript with type providers という訳でFunScriptとFunScript.HTML を使用するメリットは: o エラーを減る o コードを再利用 でも一番大事なのは… o スキルを再利用
  • 24. FunScript F# to JavaScript with type providers これは素晴らしいが… とても便利なJavaScriptライブラリが多いです。 それを利用することをやめるしかないですか? 違います! FunScriptはNuGetを通じてTypeScriptリポジトリ にあるすべて型定義のラッパーを提供しています。
  • 25. FunScript F# to JavaScript with type providers
  • 26. FunScript F# to JavaScript with type providers FunScript.HTMLでは一つのJavaScript MVCフレームワークとより 深い統合をしています: Ractive.js 詳しくはホームページを ご覧ください(英語版)
  • 27. FunScript F# to JavaScript with type providers イベントと状態の更新も 非同期的に処理できる カプセル化された状態
  • 28. FunScript F# to JavaScript with type providers 必要ならば簡単にFunScriptを 拡張することも可能です。
  • 29. FunScript F# to JavaScript with type providers 実際にF#からJSへもう一つの コンパイラーがあります: IntelliFactoryの開発したWebSharper。 FunScriptと違ってWebSharperは フルスケールのウェブフレームワークです。 より詳しい比較が続きます。
  • 30. FunScript F# to JavaScript with type providers FUNSCRIPT 機能 上記 WEBSHARPER 機能 すみませんが使用 したことはありません サイトをご覧ください マジかよ
  • 31. FunScript F# to JavaScript with type providers そろそろ SAYONARA BABY スピン語版でこういう風に言っていましたよ
  • 32. FunScript F# to JavaScript with type providers FunScriptはZach Brayが作成した プロジェクトです。F#のコミュニティ からも貢献されています。 ▪ Tomas Petricek ▪ Robert Pickering ▪ James Freiwirth マーベル ヒーローの 名前っぽく ない? 詳細はfunscript.info
  • 33. FunScript F# to JavaScript with type providers そして、プレゼンテーションは こういう者が作成致しました: Alfonso García-Caro @alfonsogcnunez github.com/alfonsogarciacaro それでは… FunScriptの 質問があり ましたら 日本語でも お気軽に ご連絡 ください
  • 34. FunScript F# to JavaScript with type providers 一体 何を待って いるの