WLTools: Language Specification

The purpose of this wiki is to rigorously describe Wolfram Language to assist authors of Wolfram Language tools and students of programming languages. Despite its widespread use in academia and industry, Wolfram Language has no formal specification. This website is an attempt to fix that. If you are looking for user documentation or a programming tutorial, you are in the wrong place.

Would you like to help construct a language specification for Wolfram Language? We invite contributions from anyone. It's as easy as clicking " Edit on GitHub" and writing some Markdown. A good place to start is the Contributing page.

Hit us up on...

  • Slack Workspace: https://wolfr.am/y0c73dZg
  • GitHub: https://github.com/WLTools Unfortunately, GitHub requires organization members to be "invited" by email or GitHub username, but I intend it to be open to anyone who wishes to participate. Hit us up on Slack.

Table of Contents

  • Language Specification

    • Syntax

      • Primitives
      • Operators
      • Formatting and whitespace
      • Box sublanguage
      • Issues and inconsistencies
      • Precedence
      • FullForm interpretation
      • Nonexpression objects ("atomic functions")
      • Bugs
    • Semantics

      • Symbol properties
      • OwnValues
      • DownValues, UpValues
      • DefaultValues
      • Options
      • Attributes
      • Messages
      • SubValues
      • NValues
      • FormatValues
      • Scoping rules
      • Scoping operators
      • Contexts
      • λ calculus semantics
      • Packages
      • Pattern matching
      • Patterns
      • Types of equality
      • Options
      • Evaluation
      • Types
      • Messages
      • Homoiconicity
    • Standard Library

      • Manipulating primitives and expressions
      • "List" processing and functional programming
      • Homoiconic functions
      • Introspection
      • Strings
      • Numbers
      • Control flow
      • Controlling evaluation
      • IO
      • Mathematics
      • Graphics
      • UI
      • Typesetting

      • System and Environment

      • Autoevaluating symbols
    • Interfaces

      • Notebook
      • REPL
      • Applications
      • WSTP
      • WXF
  • Resources for implementors

This website and its authors are not affiliated with Wolfram LLC in any way.