Es scheint mir, dass beide technisch austauschbar sind, aber unterschiedliche konventionelle Bedeutungen haben.Was ist der Unterschied zwischen Klammern [] und() in Racket (Lisp-Programmiersprache)?
Antwort
According to the Racket documentation, gibt es keinen Unterschied - es gibt nur eine Konvention [
und ]
für cond
Klauseln zu verwenden (und Ihr Urteil für den Rest zu verwenden, soweit ich verstehe):
Die Verwendung von eckige Klammern für cond-Klauseln sind eine Konvention. Im Racket sind Klammern und eckige Klammern tatsächlich austauschbar, solange (mit angepasst) und [mit angepasst wird]. Durch die Verwendung von eckigen Klammern an einigen wichtigen Stellen wird der Racket-Code noch lesbarer.
ohne Kenntnisse über das Design der Schlägersprache verfügt, wäre meine Vermutung, dass eckige Klammern als Reaktion auf Beschwerden, die viele Lisp Ausdrücke schwer zu lesen aufgrund der großen Anzahl von identischen aussehenden Klammern eingeführt wurden, sind besonders an den Enden tief verschachtelter Konstrukte. Mit anderen Worten, es wird wahrscheinlich verwendet, um Ihrem Auge zu ermöglichen, einige Referenzpunkte im Code festzulegen, um zu ermitteln, welche Klammer Sie an einem bestimmten Punkt schließen.
- 1. Was ist der Unterschied zwischen `==` und `ist`?
- 2. PHP-Namespacesyntax: Was ist der Unterschied zwischen Zahnspange und Zahnspange?
- 3. Was ist der Unterschied zwischen/* ... */und/** ... */
- 4. Was ist der Unterschied zwischen + = und = +?
- 5. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 6. Was ist der Unterschied zwischen:.! und: r !?
- 7. Was ist der Unterschied zwischen Verilog! und ~?
- 8. Was ist der Unterschied zwischen Difftime und '-'?
- 9. Was ist der Unterschied zwischen $ und $$?
- 10. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 11. Was ist der Unterschied zwischen strcpy und "="?
- 12. Was ist der Unterschied zwischen ⊕ und + hier?
- 13. Was ist der Unterschied zwischen `&` und `ref`?
- 14. Was ist der Unterschied zwischen $ (...) und `...`
- 15. Was ist der Unterschied zwischen .Equals und ==
- 16. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 17. Was ist der Unterschied zwischen? und ? = Nil
- 18. Was ist der Unterschied zwischen:
- 19. Was ist der Unterschied zwischen = Label (Gleichheitszeichen) und [Label] (Klammern) in ARMv6 Assembly?
- 20. Was ist der Unterschied zwischen einfachen und doppelten eckigen Klammern in Bash?
- 21. Was ist der Unterschied zwischen Klammern express und string in react.js
- 22. Was ist der Unterschied zwischen: und :: und ::: in Javascript Grammatik
- 23. Was ist der Unterschied zwischen add und [] in der Wörterbuchoperation
- 24. Was ist der Unterschied zwischen `-Contains` und` -In` in PowerShell?
- 25. Was ist der Unterschied zwischen der Variablenzuweisung und der Referenzübergabe?
- 26. Unterschied zwischen 3 Methoden der Erkennung von True in Racket
- 27. Was ist der Unterschied zwischen der JSP und der JSTL?
- 28. Was ist der Unterschied zwischen computeScalingRotation und computeRotationScaling ist
- 29. Was ist der Unterschied zwischen ist - (void) und + (void) Methoden
- 30. Was ist der Unterschied zwischen PS1 und PROMPT_COMMAND ist
'{' und '}' sind auch ein anderes Äquivalent zu Klammern, aber für bestimmte Anwendungsfälle (wie vorgefertigte Strukturliterale). Weitere Informationen zur [Lesersyntax] (https://docs.racket-lang.org/reference/reader.html#%28part._default-readtable-dispatch%29). – Winny