◆ var let = f =>  f()

これまでに 代入しない方法 といって let 関数を作りました
let という変数名は ES6 でも使える (下の方)
JavaScript を一つの式で書く

使い方は
let(1, 2, (a, b) => a + b)
とか
let(1, 2)((a, b) => a + b)
とか

中身は
{
const a = 1
const b = 2
a + b
}
これと同じこと

他の言語をみてみる

一つの式にしてしまうあたり関数型言語っぽい気がしたので 個人的にその代表と思う common lisp と haskell の let を見てみます

lisp 系は clojure が最近のはやりみたいですけど そこまで let 構文変わってなさそうなのでこっちにします

common lisp

(let ((a 1) (b 2)) (+ a b))

という感じ

(let 代入 処理)

です

動かしてみると
(defun x ()
    (let ((a 1) (b 2)) (+ a b)))

(print (x))
// 3

haskell

let
    a = 1
    b = 2
in
    a + b

動かしてみると
x =
    let
        a = 1
        b = 2
    in
        a + b

main = print $ x
// 3

JavaScript

どっちも 代入してる感があって式とその名前が対応していてわかりやすいです

ということでそれを参考にこう書けるようにします
let((
    a = 1,
    b = 2
) =>
    a + b)
let((a = arr[1], b = arr[0]) => a + b)


あれ?
var let = f => f()
これだけ??

var let = f => f()

let((
    a = 1,
    b = 2
) =>
    a + b)
// 3

var arr = [1, 2]
let((a = arr[1], b = arr[0]) => a + b)
// 3

一時変数使わない処理がすごく簡単にかけるようになりました
本当に関数実行してるだけ