2017-09-26 9 views
1

in clojure.core.async gibt es eine Funktion mit dem Namen alts! auf eine Nachricht auf mehreren Kanälen warten. In Go heißt das select (wie wählen Sie eine Nachricht aus mehreren Kanälen), aber was bedeutet "alt" in Clojure?Bedeutung von "alt!" in Clojure

Ich weiß, was die Funktion tut, aber es ist schwer für mich, mich an den Funktionsnamen zu erinnern, wenn ich nicht weiß, was "alters" bedeutet? Ist es eine Abkürzung für "Alternative (n)"?

+2

Das war immer mein Gedanke. Es wählt das erste aus einer Reihe von alt (ernatives) aus. – Carcigenicate

+1

Es ist wahrscheinlich eine Abkürzung für "Alternative (n)". Dieser Begriff wird zumindest in der [Bekanntmachung] (https://clojure.org/news/2013/06/28/clojure-clore-async- channels) dargelegt. – glts

+2

Die Namen 'alts!' Und 'alt!' Stammen wahrscheinlich von dem ähnlichen 'ALT'-Konstrukt in der [occam Programmiersprache] (https://en.wikipedia.org/wiki/Occam_ (Programmiersprache)), obwohl Occam's ALT-Klauseln werden jeweils durch eine Bedingung geschützt. – Thumbnail

Antwort

0

Vom docstring für alt! (Hervorhebung hinzugefügt):

macht eine einzige Wahl zwischen einen von mehreren Kanaloperationen, wie von Alts!

und alts! (Hervorhebung hinzugefügt):

schließt höchstens eine von mehreren Kanaloperationen.

Dies würde die Idee unterstützen, dass "alt" die Abkürzung für "alternative" oder "Alternativen" ist. Mit anderen Worten, wählen Sie eine von mehreren Alternativen.