In Emacs Lisp (boundp 'symbol)
gibt t
zurück, wenn symbol
an einen bestimmten Wert gebunden ist, andernfalls nil
. Gibt es ein gleichwertiges Verfahren in Guile Scheme?Prüfen, ob ein Symbol gebunden ist
Antwort
Das Schema vermeidet eine undichte Implementierung in die Spezifikation und spricht von "Bezeichnern", anstatt ein internes Symbol an einen Wert zu binden - siehe §2.1 von R7RS. Im Schema ist ein "Bezeichner" nur ein Name.
Ein Bezeichnername wird als eine Variable identifizierend behandelt, es sei denn, er identifiziert ein Makro (Syntax) oder befindet sich in einem Kontext, der behandelt werden muss, um ein Symbol zu identifizieren, wie z. Insbesondere heißt es in §2.1 von R7RS: "Wenn ein Bezeichner als Literal oder in einem Literal erscheint (siehe Abschnitt 4.1.2), wird er zur Bezeichnung eines Symbols verwendet (siehe Abschnitt 6.5)". Sie können testen, ob ein Identifikator ein Symbol mit dem Symbol identifiziert? Verfahren.
Guile Schema ist in der Tat umzusetzen Kennungen durch Internierung Symbole und Sie können abfragen, ob ein Symbol gebunden ist definiert unter Verwendung ?:
(defined? 'num)
=> #f
(define num 1)(defined? 'num)
=> #t
Dies ist eine schlaue Implementierung und kein tragbares Schema.
Edit: Beachten Sie, dass definiert? funktioniert nur mit Variablen der obersten Ebene, die mit define definiert sind. Es funktioniert nicht mit Let und Cognates.
- 1. Prüfen, ob ein Objekt ist
- 2. prüfen, ob ein Wort ein isogram ist
- 3. Prüfen, ob vor dem @ -Symbol ein String steht
- 4. Selen prüfen, ob ein Fenster geöffnet ist
- 5. C# prüfen, ob ein Dateiziel gültig ist
- 6. Prüfen, ob ein XML-Element vorhanden ist
- 7. Prüfen, ob ein Punkt im Ansichtsfenster ist
- 8. prüfen, ob ein Objekt ist Array-artige
- 9. Prüfen, ob ein Prozess in Gang ist
- 10. Java prüfen, ob BufferedImage ein GIF ist
- 11. Numpy: Prüfen, ob ein Wert NaT ist
- 12. Prüfen, ob PyObject ist Keine
- 13. Prüfen, ob Service verfügbar ist
- 14. Prüfen, ob Jahr Schaltjahr ist
- 15. Prüfen, ob mobilefirst geladen ist
- 16. Prüfen, ob ein Webservice existiert
- 17. Prüfen, ob ein String ein gültiger Dateiname mit Qt ist
- 18. prüfen, ob ein String ein gültiger RegexMuster ist VB.NET
- 19. Prüfen, ob ein Wort ein TCL-Schlüsselwort ist oder nicht
- 20. Prüfen, ob ein Zeichen ein Vokal oder Konsonant ist?
- 21. Wie kann man prüfen, ob ein Objekt ein Imageview ist?
- 22. Prüfen, ob DB verfügbar ist
- 23. Prüfen, ob Boolean wahr ist?
- 24. prüfen, ob materialisierte Ansicht ist
- 25. Prüfen, ob Übertragsmerker gesetzt ist
- 26. Verstehen, ob Codebeispiel ist CPU-gebunden oder Speicher gebunden
- 27. Erkennen, ob ein Schlüssel an etwas in Vim gebunden ist
- 28. Wie können Sie prüfen, ob ein Name auf dasselbe Symbol wie ein anderes verweist?
- 29. Prüfen, ob ein Element in einer Tasche vorhanden ist?
- 30. prüfen, ob ein SSH-Tunnel in Betrieb ist