1
私は、以下の目的を持っている:Ramdaのオブジェクトのプロパティ間でどのように値を移動できますか?
var player = {
cards: [1,2,3,4,5],
hand: []
}
は私がhand
にcards
プロパティのいくつかのアイテムを移動したいです。
レンズを使ってオブジェクトの変異を防ぐことはできますが、機能を構成するだけの方法で解決できる解決策には到達できませんでした。そんなことはしないと思われるかもしれません。
私は何ができる最善のは、以下の通りである:
はfunction drawIntoHand(amount, player) {
const deck = R.lensProp('cards')
const hand = R.lensProp('hand')
let cardsRemoved = R.over(deck, R.take(amount), player)
R.set(hand, R.append(cardsRemoved), player)
return R.set(deck, R.drop(amount), player)
}
カードをインデックスまたは値で移動しますか? – Comptonburger
関数を合成することですべてが可能です(lambda calculusが教えてくれます)が、必ずしも宣言的ではありません。 – Bergi
なぜ 'R.set(手、R.append(cardsRemoved)、player)'の結果を無視していますか? – Bergi