Funzione funzionale OR funzionale reattiva

0

Mi piacerebbe sapere la tua opinione su che cosa sia un modo ideologico di scrivere una funzione OR nella programmazione reattiva funzionale.

Cioè, se ho il numero x di segnali che può restituire un valore falso o falso, come posso valutare se almeno un segnale è vero o tutti i segnali sono falsi? Infine, vorrei inviare il risultato (vero / falso) come risultato.

Posso pensare a un certo numero di modi per realizzare questo, ma si sentono tutti gonfiati e sovradimensionati.

    
posta Erik Johansson 25.08.2016 - 10:12
fonte

1 risposta

1

Mi sembra un'operazione combinata di base più semplice per me. In RxSwift sarebbe qualcosa di simile a:

func anyTrue(streams: [Observable<Bool>]) -> Observable<Bool> {
    return streams.combineLatest { $0.contains(true) }
}

Quanto sopra inizierà a emettere valori dopo che tutti gli input hanno emesso almeno un valore. Finché almeno uno degli stream ha emesso true, emetterà true, altrimenti emetterà false.

In ReactiveCocoa, questo sarebbe:

func anyTrue(streams: [Signal<Bool, NoError>]) -> Signal<Bool, NoError> {
    return combineLatest(streams).map { $0.contains(true) }
}
    
risposta data 10.10.2016 - 02:41
fonte

Leggi altre domande sui tag