howl-0.1.0.0: A small Wolfram Language interpreter and symbolic rewriting library
Safe HaskellNone
LanguageGHC2021

Howl.Expr.Syntax

Description

Bidirectional pattern synonyms for common Wolfram Language symbol expressions.

This module exports names such as Plus, List, and Rule as bidirectional pattern synonyms. They can be used both for matching expressions and for constructing them.

For example:

  • Plus : Seq.fromList [toExpr 1, "x"] represents the Wolfram Language expression 1 + x@
  • Rule : Seq.fromList ["x", toExpr 3] represents the Wolfram Language expression x -> 3@

Compared to Howl.Expr, this module focuses on the larger catalog of named symbol-expression patterns.

Documentation

pattern Sequence :: Expr #

pattern List :: Expr #

pattern Apply :: Expr #

pattern Map :: Expr #

pattern Plus :: Expr #

pattern Subtract :: Expr #

pattern Times :: Expr #

pattern Divide :: Expr #

pattern Power :: Expr #

pattern Blank :: Expr #

pattern BlankSequence :: Expr #

pattern Slot :: Expr #

pattern SlotSequence :: Expr #

pattern Pattern :: Expr #

pattern Alternatives :: Expr #

pattern Optional :: Expr #

pattern Test :: Expr #

pattern PatternTest :: Expr #

pattern Association :: Expr #

pattern And :: Expr #

pattern Or :: Expr #

pattern True :: Expr #

pattern False :: Expr #

pattern Less :: Expr #

pattern Greater :: Expr #

pattern LessEqual :: Expr #

pattern GreaterEqual :: Expr #

pattern Equal :: Expr #

pattern Unequal :: Expr #

pattern SameQ :: Expr #

pattern UnsameQ :: Expr #

pattern Rule :: Expr #

pattern RuleDelayed :: Expr #

pattern Set :: Expr #

pattern SetDelayed :: Expr #

pattern UpSet :: Expr #

pattern UpSetDelayed :: Expr #

pattern TagSetDelayed :: Expr #

pattern Part :: Expr #

pattern Default :: Expr #

pattern Null :: Expr #

Orphan instances

FromExpr () # 
Instance details

Methods

fromExpr :: Expr -> Maybe () #

FromExpr Bool # 
Instance details

Methods

fromExpr :: Expr -> Maybe Bool #

ToExpr () # 
Instance details

Methods

toExpr :: () -> Expr #

ToExpr Bool # 
Instance details

Methods

toExpr :: Bool -> Expr #

FromExpr a => FromExpr [a] # 
Instance details

Methods

fromExpr :: Expr -> Maybe [a] #

ToExpr a => ToExpr [a] # 
Instance details

Methods

toExpr :: [a] -> Expr #

(FromExpr a, FromExpr b) => FromExpr (a, b) # 
Instance details

Methods

fromExpr :: Expr -> Maybe (a, b) #

(ToExpr a, ToExpr b) => ToExpr (a, b) # 
Instance details

Methods

toExpr :: (a, b) -> Expr #

(FromExpr a, FromExpr b, FromExpr c) => FromExpr (a, b, c) # 
Instance details

Methods

fromExpr :: Expr -> Maybe (a, b, c) #

(ToExpr a, ToExpr b, ToExpr c) => ToExpr (a, b, c) # 
Instance details

Methods

toExpr :: (a, b, c) -> Expr #

(FromExpr a, FromExpr b, FromExpr c, FromExpr d) => FromExpr (a, b, c, d) # 
Instance details

Methods

fromExpr :: Expr -> Maybe (a, b, c, d) #

(ToExpr a, ToExpr b, ToExpr c, ToExpr d) => ToExpr (a, b, c, d) # 
Instance details

Methods

toExpr :: (a, b, c, d) -> Expr #