Heim » Lexikalische Scoping in R

Lexikalische Scoping in R

1980
  • Gerald Jay Sussman
  • Guy L. Steele Jr.
Computer programmer demonstrating lexical scoping in R programming language.

R verwendet lexikalisches Scoping, ein Konzept, das aus der Scheme-Sprache übernommen wurde. Das bedeutet, dass die Werte freier Variablen in einer Funktion aufgelöst werden, indem sie in der Umgebung gefunden werden, in der die Funktion definiert wurde, und nicht in der Umgebung, in der sie aufgerufen wird. Dies macht das Funktionsverhalten vorhersehbarer und unabhängig vom Aufrufkontext – ein Schlüsselmerkmal der funktionalen Programmierung.

Lexical scoping, also known as static scoping, is a fundamental convention for looking up variable names in a Programmiersprache. In R, when a function needs to access a variable that is not defined locally (a “free variable”), it searches for that variable in the environment where the function was created. This “creation environment” is permanently attached to the function. This contrasts with dynamic scoping, used in some older languages, where the search would proceed up the chain of function calls (the “calling environment”).

For example, consider a function `f()` that uses a variable `x` but doesn’t define it. If `f()` is defined in the global environment where `x` is 10, then no matter where `f()` is called from, it will always use `x = 10`. Even if it’s called from another function that has its own local `x = 20`, `f()` will ignore the calling environment’s `x` and use the one from its definition environment. This behavior makes code easier to debug and reason about, as a function’s behavior is determined solely by its own code and the environment in which it was defined.

This feature is crucial for functional programming paradigms, enabling powerful constructs like closures, where a function can “remember” the environment in which it was created. This is heavily utilized in advanced R programming and package development, such as in the `lapply` family of functions and in frameworks like Shiny for web applications.

UNESCO Nomenclature: 1203
- Computerwissenschaften

Typ

Abstraktes System

Unterbrechung

Inkremental

Verwendung

Weit verbreitete Verwendung

Vorläufersubstanzen

  • Das Konzept des Geltungsbereichs in Programmiersprachen
  • Die Programmiersprache Lisp und ihre Dialekte
  • Die Programmiersprache Scheme, die lexikalisches Scoping populär machte
  • Lambda-Kalkül als theoretische Grundlage für Funktionen und Umfang

Anwendungen

  • Erstellung von Closures in R für die funktionale Programmierung
  • Entwicklung von Paket-Namespaces zur Vermeidung von Variablenkonflikten
  • Ermöglichung nicht standardmäßiger Auswertungstechniken, die in Paketen wie dplyr verwendet werden
  • Erstellen von robustem und modularem Code ohne Nebenwirkungen

Patente:

    Mögliche Innovationsideen

    !Professionals (100% free) Mitgliedschaft erforderlich

    Sie müssen ein Professionals (100% free) Mitglied sein, um auf diesen Inhalt zugreifen zu können.

    Jetzt teilnehmen

    Sie sind bereits Mitglied? Hier einloggen
    Related to: lexical scoping, static scoping, functional programming, R, Scheme, environment, closure, free variable, namespace, non-standard evaluation.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    VERFÜGBAR FÜR NEUE HERAUSFORDERUNGEN
    Maschinenbauingenieur, Projekt-, Verfahrenstechnik- oder F&E-Manager
    Effektive Produktentwicklung

    Kurzfristig für eine neue Herausforderung verfügbar.
    Kontaktieren Sie mich auf LinkedIn
    Integration von Kunststoff-Metall-Elektronik, Design-to-Cost, GMP, Ergonomie, Geräte und Verbrauchsmaterialien in mittleren bis hohen Stückzahlen, Lean Manufacturing, regulierte Branchen, CE und FDA, CAD, Solidworks, Lean Sigma Black Belt, medizinische ISO 13485

    Wir suchen einen neuen Sponsor

     

    Ihr Unternehmen oder Ihre Institution beschäftigt sich mit Technik, Wissenschaft oder Forschung?
    > Senden Sie uns eine Nachricht <

    Erhalten Sie alle neuen Artikel
    Kostenlos, kein Spam, E-Mail wird nicht verteilt oder weiterverkauft

    oder Sie können eine kostenlose Vollmitgliedschaft erwerben, um auf alle eingeschränkten Inhalte zuzugreifen >Hier<

    Historischer Kontext

    (wenn das Datum nicht bekannt oder nicht relevant ist, z. B. "Strömungsmechanik", wird eine gerundete Schätzung des bemerkenswerten Erscheinens angegeben)

    Verwandte Erfindungen, Innovationen und technische Prinzipien

    Nach oben scrollen

    Das gefällt dir vielleicht auch