Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LiveScript
Search
Pine Mizune
February 10, 2016
Programming
1
660
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
730
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
1.6k
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
640
Lerna による明示的疎結合アーキテクチャ
pine
1
610
CircleCI 2.0 x JavaScript
pine
3
520
Perl 卒業式
pine
0
310
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
470
Emoji Generator meets Browser Extensions
pine
1
2.9k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.5k
Other Decks in Programming
See All in Programming
Azure AI Foundryのご紹介
qt_luigi
1
210
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
1.2k
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
370
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
950
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
2.8k
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
php-conference-japan-2024
tasuku43
0
430
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2.2k
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
250
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
1.3k
Fibonacci Function Gallery - Part 2
philipschwarz
PRO
0
210
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Making the Leap to Tech Lead
cromwellryan
133
9k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
The World Runs on Bad Software
bkeepers
PRO
66
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
173
51k
The Cult of Friendly URLs
andyhume
78
6.1k
Adopting Sorbet at Scale
ufuk
74
9.2k
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.