wie Sie Variablen Werte zuweisen im Schläger?
wenn ich diese Liste
'((x 3) (y 4) (z 2))
wie vergebe ich 3 x, und y 4 und z 2 zu verwenden Mathematik zu tun, wie?
3 + x
oder
y + z
Dank
- Der erste Teil Ihrer Frage suggeriert Sie wirklich wollen, eine Liste mit zitiert Symbole, aber der zweite Teil schlage vor, Sie wissen nicht viel über die s-exps und daher, dass Sie möglicherweise nach einer viel einfacheren Antwort. Wenn das letztere zutrifft, was Sie wollen, ist der erste Teil von Oscar ' s Antwort über
let
, und schauen Sie nicht auf den zweiten Teil.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
let
zum deklarieren von lokalen Variablen in Scheme. Zum Beispiel, um Bindungen mit den gegebenen Werten in der Liste:Nun können Sie auswerten eines Ausdrucks mit dem deklarierten Variablen in der
<body>
Teil. Sie können sogar erstellen Sie einelet
aus einer Liste von Bindungen, zum Beispiel der Verwendung von Makros:Das obige erstellt ein makro namens
my-let
der erhält eine Liste von Bindungen und Ausdruck bewertet werden, mit denen Bindungen, und gibt das Ergebnis der Auswertung.eval
, also Vorschläge sind willkommen 🙂[(_ (quote lst) exp) ....]
woquote
ist eine wörtliche, aber das ist natürlich etwas schummeln 😉 (Wenn Ihrmy-let
wird nicht funktionieren, wenn entweder die Liste ist zuerst einer Variablen zugewiesen und anmy-let
.)lst
undexp
können nun als Variable übergeben werden, solangeexp
ist ein zitierter AusdruckEine einfache, unkomplizierte und tragbare Art und Weise zu definieren, einen accessor (in diesem Beispiel getval) mit
assq
:oder jeglicher variation davon. Verwenden Sie dann wie folgt vor: