2011-01-01から1年間の記事一覧

Coco 0.6.2

.co

https://github.com/satyr/coco/tree/0.6.2 0.5.2 0.6.2 f(a).p f a .p f() f! o{} ^o {o.p, o.q} o{p, q} {p, q} = r if r? {p, q}? = r (r) -> {p, q} = r; ... ({p, q}: r) -> ... a.b a?b this import x import x "(#{id})" "(#id)" /\d/source /\d/$ [\…

?!

.co

0.6.0 から () の代わりに ! と書けるため意味を持つようになった。 !? は既に inexistence operator として有効なのでいよいよカオス。 Short Formal p?q p?.q p? q p?(q) p ?q p ? q p!q p().q p! q p()(q) p !q p(!q) p?!q p?().q p?! q p?()(q) p ?!q p …

機能のルーツ

ES.next Class, Destructuring, Splat Perl Conditional Assignment, Implicit Call, Implicit Return, String Interpolation, Post if/for/while, Range, unless/until Python Chained Comparison, Indented Block, Multiline String Ruby super, Variable …

WeakMap uniq

[http://wiki.ecmascript.org/doku.php?id=harmony:weak_maps:title=WeakMap] で uniq を書いて [https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf:title=indexOf] 版と比較してみた。 Primitive を受け付けない Error:…

paren-free CoffeeScript

括弧省略言語 CoffeeScript でなるべく負けた気にならないための書法集。 do Function(js)() # ↓ do Function js not in/of/instanceof not (a instanceof B) # ↓ a not instanceof B セミコロン [f(a), g(h(b), c), d] # ↓ [f a; g(h b; c); d] 関数呼び出…

Coco 0.5.2

.co

https://github.com/satyr/coco/tree/0.5.2 0.4.2 0.5.2 ///.../// //...// if !a? then a else b a !? b function f(a, b) -> ... function f a, b ... let (a = b) ~> ... let a = b ... new -> ... new ... switch case [a, b] then switch case a, b the…

IIFE

.js

http://benalman.com/news/2010/11/immediately-invoked-function-expression/ について。 訳 「即時実行関数式」は長いので「即行関数」としたい。 そのまま「IIFE」でもいいが検索性に難あり。 書き方 !function(){}() ~function(){}() + と - 、及び括弧…

wtfcs

https://github.com/satyr/coco/wiki/wtfcs *1そろそろ日本でも流行り始めた CoffeeScript 。未だ構文仕様が定まらず、バグも多く、人手不足で開発は停滞気味。言語開発に興味のある人は今がチャンス。英語にめげずコミットしてみてはいかが。 *1:http://wtf…

**

.co

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

Coco 0.4.2

.co

https://github.com/satyr/coco/tree/0.4.2 0.3.2 0.4.2 (x.y ||= {})z ||= [] x!y@z (-> ...)call x with x then ... Array(-~x)join s "#{s}" * x @constructor.static @..static `L:`; `break L;` :L break L a?.b a?b a ?= c.0; b ?= c.1 [a, b] ?= c [ …

kc2ks

keyconfig の設定を KeySnail に引き継ぐ。https://gist.github.com/858606 2011-03-24 Fx4 を期に乗り換えるつもりで書いたが、若干の変更のみであっさり動いたため結局 keyconfig を使い続けている。そもそも用途が完全に被るわけではないので両方入れてお…

ES3 8.6.2.3 step 5

.js

https://mail.mozilla.org/pipermail/es-discuss/2011-February/012839.html[[Prototype]] の ReadOnly*1が子孫に伝播する話。 Object.prototype = 0 Object.prototype + '' // [object Object] Object.prototype は書き込み禁止なので代入が無視される*2。 …

Coco 0.3.2

.co

https://github.com/satyr/coco/tree/0.3.2 0.2.0 0.3.2 f (a) -> ... a ... o['!'].m().p o'!'m()p {k: o.k} {o.k} a = o.a || b; c = o.c || d {a || b, c || d} = o s += s.0 s.+=0 {}.toString.call(x).slice(8, -1) typeof! x i for i from 0 til x i f…

ADI

.co

コンマの次はドット。 0.1.4 から @[0]['1']の代わりに @.0.'1' と書けるが、この並びならドットが無くても字句解析に支障が無い((例えば @a.0.1 だとドットを取ると意味が変わるので省略できない))。 THIS STRNUM STRNUM間にスペースがあれば括弧が補われて…

ACI

.co

[1, 2, 3]のコンマが無駄なので [1 2 3]と省略できるようになった。0.2.2 では文法をこねくりまわして実現したが、パーサの負担が大きいのでそれは諦め、より単純に字句解析時にトークンを補うことにした。例えば .. NUMBER NUMBER ..を見つけたら .. NUMBER…

backcall

.co

r = f (a, b) -> g (c) -> h -> i a, b, cの代わりに r = do (a, b) <- f c <- g <- h i a, b, cと書けるようにしてみた。矢印が逆向きなので仮に backcall と呼ぶ。 ✓ インデントが浅くなって嬉しい(はず) Haskell っぽく書ける(かのように見える) × インデ…

ckup

.co

https://github.com/satyr/ckup http://satyr.github.com/ckup https://github.com/mauricemach/coffeekup の劣化コピー。 これで JS に続き HTML も書かずに済む。次は CSS かな。