Diciamo che una funzione è severo nel suo argomento seCome diciamo formalmente che una funzione non è rigida in un argomento?
f ⊥ = ⊥
ma come facciamo a dire che una funzione non è severo nel suo argomento? Possiamo dire che una funzione non è rigorosa se
f ⊥ ≠ ⊥
?
Come si estende alle funzioni di molti argomenti, in cui è possibile o meno valutare un argomento in base al valore di qualche altro argomento?
Sto chiedendo questo nel contesto di documentare meglio le proprietà di severità delle funzioni Haskell usando la documentazione di Haddock.
Sei corretto, una funzione non è rigida se f ⊥ ≠ ⊥. Se non si può valutare un argomento a seconda di, la funzione è non rigida (nell'argomento che potrebbe non essere valutato). –
BadZen
Se una funzione * sempre * valuta il suo argomento, viene chiamata strict in tale argomento. Una funzione che * mai * valuta un argomento è chiamata non interessante in quell'argomento. OK, OK, l'ho appena inventato. Ma studiare questo comportamento insignificante non sembra essere una scienza molto eccitante. Una funzione che * non sempre * valuta il suo argomento è detta non rigida in quell'argomento. –
@ n.m. Una funzione può ignorare completamente la sua argomentazione ed essere ancora severa in tale argomento. – augustss