Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
LiveScript
Pine Mizune
February 10, 2016
Programming
1
610
LiveScript
Meguro.es #2 で発表した資料です。
http://meguroes.connpass.com/event/25018/
Pine Mizune
February 10, 2016
Tweet
Share
More Decks by Pine Mizune
See All by Pine Mizune
多言語対応と絵文字ジェネレーター / i18n of Emoji Generator
pine
0
470
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
950
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
470
Lerna による明示的疎結合アーキテクチャ
pine
1
550
CircleCI 2.0 x JavaScript
pine
3
470
Perl 卒業式
pine
0
280
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
410
Emoji Generator meets Browser Extensions
pine
1
2.7k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.4k
Other Decks in Programming
See All in Programming
Amazon QuickSightのアップデート -re:Invent 2022の復習&2022年ハイライト-
shogo452
0
220
AWSにおける標的型Bot対策
hacomono
0
420
Step Functions Distributed Map を使ってみた
codemountains
0
110
僕が考えた超最強のKMMアプリの作り方
spbaya0141
0
180
レガシーフレームワークからの移行
ug
0
120
なぜRubyコミュニティにコミットするのか?
luccafort
0
310
TypeScript 4.9のas const satisfiesが便利
tonkotsuboy_com
9
2.3k
Amebaブログの会員画面システム刷新の道程
ryotasugawara
1
240
Swift Observation
shiz
4
290
Rによる大規模データの処理
s_uryu
2
640
AWSとCPUのムフフな関係
cmdemura
0
470
新卒でサービス立ち上げから Hasuraを使って3年経った振り返り
yutorin
0
230
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
1.2k
Rebuilding a faster, lazier Slack
samanthasiow
69
7.5k
Build your cross-platform service in a week with App Engine
jlugia
221
17k
How STYLIGHT went responsive
nonsquared
89
4.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
22
43k
Git: the NoSQL Database
bkeepers
PRO
419
60k
Become a Pro
speakerdeck
PRO
6
3.2k
Robots, Beer and Maslow
schacon
154
7.3k
Making the Leap to Tech Lead
cromwellryan
117
7.7k
Art, The Web, and Tiny UX
lynnandtonic
284
18k
Scaling GitHub
holman
453
140k
Automating Front-end Workflow
addyosmani
1351
200k
Transcript
Live Script 10 Feb, 2016 / Meguro.es #2 Pine Mizune
⾃⼰紹介 o ID / HN: @pine613 o 好きな言語: JavaScript /
Crystal o 仕事で書いてる: Perl / Swift / Kotlin o Mobile Factory, Inc o 最寄り: 五反田駅 o 本日は @mizuki_r 氏の代打です ⽬⿊のとなり
⽬次 1. LiveScript とは何か 2. 別に Babel でよくない ? 3.
LiveScript の特筆すべき⽂法 – 関数型記法・ほか 4. まとめ
LiveScript とは何か ? • CoffeeScript から派生した AltJS • 関数型言語として進化 •
利用人口が少ない
別に Babel で良くない ? • ⾃分もそう思います! • 本筋の開発で使うことは意図してません • このプレゼンで意図した使い⽅
– ⼩さなモジュール – gulpfile / webpack.config
インストール⽅法 repl があるのでぜひ弄ってみてください! $ npm i -g livescript ※ repl:
対話型インタプリタ
LiveScript の⽂法 1. 基本⽂法 2. パイピング 3. 関数 4. カリー化・関数合成
基本⽂法 (1/2) if 2 + 2 == 4 'somethingʼ else
ʻsomething elseʼ 基本は CoffeeScript と同じ if (2 + 2 == 4) { 'somethingʼ; } else { ʻsomething elseʼ; } LiveScript JavaScript
基本⽂法 (2/2) require! { lodash: _ gulp } require が圧倒的に楽
const _ = require(ʻlodashʼ) const gulp = require(ʻgulpʼ) LiveScript JavaScript
パイピング x = [1 2 3] |> reverse |> head
メソッドのネスト呼び出しの糖衣構文 let x = head(reverse([1, 2, 3])) LiveScript JavaScript
関数 (1/2) f = (x) -> x * x f(10)
#=> 100 CoffeeScript と同様に定義可能 const f = (x) => x * x f(10) #=> 100 LiveScript JavaScript
関数 (2/2) fold (+) [ 1 to 10 ] #=>
55 演算子は関数として扱える fold( (a, b) => a + b, [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ) LiveScript JavaScript
カリー化 f = (* 2) f(8) # => 16 f
= (a, b) --> a + b g = f(2) g(8) #=> 16 部分的に引数を固定した関数を得る LiveScript
関数合成 f = (x) => x + 2 g =
(x) => x * 10 (f >> g) 3 #=> 50 LiveScript 2つの関数を合成して関数を生成 let f = (x) => x + 2 let g = (x) => x * 10 g(f(3)) #=> 50 JavaScript
まとめ • LiveScript は CoffeeScript 派生言語 • 関数型方面へ進化 • ES2015
に飽きた時の暇つぶしにどうぞ
【宣伝】Gotanda.js #3 開催します n Gotanda.js #3 in freee ü 日時:
2016 年 3 月 11 日 (金) ü 会場: freee 株式会社 ü 内容: LT x 8 (5min LT x 8) ü 申し込みは Connpass から! http://gotandajs.connpass.com/event/26027/
fin.