nushell / nushell/nushell.github.io
Are Boolean operators lazy?
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 258
- Forks
- 561
- Ø Merge
- 3 Std. 20 Min.
- Gemergte PRs (30 T.)
- 15
Beschreibung
Hello,
TL;DR: Are the and and or Boolean operators guaranteed to be lazy, so we can document it?
I encountered this bug https://github.com/nushell/nushell/issues/10237 which makes last error out on an empty input instead of returning a null if I understand correctly.
So I have written this workaround:
let filler = if ($text != "") and ($text | split chars | last) == "%" { "%" } else { " " }
This code works without errors for me, so the RHS of the and Boolean operator must not be evaluated / be lazily evaluated.
To put it short, the and operator seems lazy (nu version 0.108.0)
I cannot find it documented in Boolean | Nushell and looking for "lazy" in the documentation does not yield anything related to Booleans.
Is and guaranteed to be lazy in future versions? What about or?
Should we document this behavior?
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der verlinkten Boolean-Dokumentationsseite und dem referenzierten Nushell-Issue 10237. Überprüfe, ob garantiert ist, dass and und or verzögert ausgewertet werden, und dokumentiere anschließend das bestätigte Verhalten sowie seine Auswirkungen auf das gezeigte Beispiel auf der entsprechenden Boolean-Dokumentationsseite.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- shell
- Bereich
- documentation
- Issue-Typ
- Dokumentation
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100