JavaScript 関数型プログラミング 不変なデータ使いかた

投稿者: | 2017年4月1日

不変なデータの定義と使い方

var empty = (_)=>{
    return null
}

var get = (key, obj) =>{
    return obj(key)
}

var set = (key, value, obj)=>{
    return (key2) =>{
        if(key===key2){
            return value
        }else{
            return get(key2,obj) //関数setに引数を渡している場合、セットされているobjの中身はempty
        }
    }
}

a = set('a','b',empty) //emptyにかっこはつけない 関数が返っている
console.log(get('a', a)) // a
console.log(get('hi', a)) // null

setで返すものは関数。

setすると、return (key2) =>{…}の”…”部分に関数を呼び出すときに渡した引数、key、value、objの値が設定される(設定?定義?される)。

getするときにkeyが違うときには、get(key2, empty)となり、empty(key2)、そしてnullを返す。

 

 

 

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください