Non ho un particolare problema di codifica a portata di mano questo è solo un esercizio per migliorare il mio processo di pensiero.
Pochi mesi fa ho iniziato a conoscere la programmazione funzionale (principalmente in R) e me ne sono innamorato. Ogni tanto cerco di pensare a problemi che potrebbero essere (correzione: che potrei trovare) difficili da risolvere in FP. Recentemente ho pensato a una situazione in cui potrei essere più interessato a programmare utilizzando la programmazione imperativa.
Mi sembra che tutte le funzioni di ordine superiore come map o reduce possano scorrere l'intera lista fornita a loro che ha senso. Come eviterai di ripetere l'intera lista nella programmazione funzionale per qualsiasi motivo - es. la lista è troppo lunga, la lista è in realtà una serie infinita, valutare ogni articolo è molto costoso ecc.
Quindi per rendere questo problema più specifico diciamo che ho un array e voglio restituire ogni membro dal membro zeroth al primo elemento il cui valore è maggiore di 10, ma voglio smettere di cercare nell'elenco una volta che trovo quell'elemento maggiore di 10.
Come risolveresti questo?
Array di esempio: 1 2 3 1 2 3 11 1 2 3 1 2 3
Non sto cercando una risposta specifica in R Ho visto abbastanza Haskell & Scala di solito ha senso del codice.
EDIT:
Ho dimenticato di menzionare il motivo per cui preferirei usare la programmazione imperativa qui.
Trovo che sia più facile interrompere l'iterazione attraverso l'array sopra con while
/ until
loops perché una volta raggiunto l'interprete di condizione di terminazione si chiude il ciclo, ma la mappa non conserva informazioni sugli elementi precedenti e riduce i risolti che però continuo per scorrere fino alla fine della mia lista.