TypeScript勉強会 #1
トランスレートやコンパイルによってJavaScriptの問題点を克服しようという機運
-
CoffeeScript
-
Haxe
| import Data.Function | |
| import Data.List | |
| data Person = Person { name :: String, age :: Int } deriving Show | |
| people = [ | |
| Person "Joe" 16 | |
| , Person "Mary" 8 | |
| , Person "Bob" 9 | |
| , Person "Mike" 8 |
| {- | |
| - 課題 | |
| - ボウリングのスコアを計算するプログラムを作成する。 | |
| - ストライクはX,スペアは/,ガーターは-と表現し、 | |
| - ゲームの結果は以下のように入力される。 | |
| - XXXXXXXXXXXX #パーフェクト | |
| - ------------------/5 # 9フレームまでガーターで10フレームでスペア | |
| -} | |
| module Main (main) where |
| code > span.kw { color: #268BD2; font-weight: bold; } | |
| code > span.dt { color: #268BD2; } | |
| code > span.dv { color: #D33682; } | |
| code > span.bn { color: #D33682; } | |
| code > span.fl { color: #D33682; } | |
| code > span.ch { color: #4070a0; } | |
| code > span.st { color: #2AA198; } | |
| code > span.co { color: #93A1A1; font-style: italic; } | |
| code > span.ot { color: #A57800; } | |
| code > span.al { color: #CB4B16; font-weight: bold; } |
| <?php | |
| paramsFromArgs($class, $method, $args) { | |
| ... | |
| } | |
| class Foo { | |
| public function method($a, $b, $c) { | |
| $params = static::paramsFromArgs(__CLASS__, __METHOD__, func_get_args()); | |
| var_dump($params); |
| <?php | |
| function combinations() | |
| { | |
| $xss = func_get_args(); | |
| return array_reduce($xss, function($yss, $xs) { | |
| $zs = []; | |
| foreach ($yss as $ys) { | |
| foreach ($xs as $x) { | |
| $zs[] = array_merge($ys, array($x)); | |
| } |
| <?php | |
| class Foo extends CActiveRecord | |
| { | |
| $public $derived; | |
| public function beforeFind() | |
| { | |
| $this->dbCriteria->select = 'col1, col2, col3, deriving(col2) AS derived'; | |
| } |
| <?php | |
| require_once("vendor/autoload.php"); | |
| $primes = Ginq::from([2])->concat(Ginq::unfold( | |
| Ginq::range(3,null,2), | |
| function($xs) { | |
| $x = $xs->first(); | |
| return [ | |
| $x, | |
| $xs->drop(1)->filter(['y'=>'y % x != 0', 'x'=>$x]) |
| # var がないことによる問題 | |
| # 関数sum内の x がローカル変数であることをいつも保証できない | |
| # このコメントアウトを外すと sum 内の x はローカル変数でなくなる | |
| # x = 100 | |
| sum = (n) -> | |
| x = 0 | |
| for i in [1..n] | |
| x += i |
| /** | |
| * ハッシュ関数 | |
| */ | |
| export interface HashFun<A> { | |
| (o : A) : string; | |
| } | |
| /** | |
| * マップ | |
| * コンストラクタにキーのハッシュ関数を与えて使う。 |