| Copyright | (c) Harm Brouwer and Noortje Venhuizen |
|---|---|
| License | Apache-2.0 |
| Maintainer | me@hbrouwer.eu, n.j.venhuizen@rug.nl |
| Stability | provisional |
| Portability | portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell98 |
Data.DRS.LambdaCalculus
Description
DRS lambda calculus; alpha conversion, beta reduction, and function composition
Synopsis
- class DRSAtom a
- class AbstractDRS a
- drsAlphaConvert :: DRS -> [(DRSRef, DRSRef)] -> DRS
- renameVar :: Eq a => a -> [(a, a)] -> a
- drsBetaReduce :: (AbstractDRS a, DRSAtom b) => (b -> a) -> b -> a
- (<<@>>) :: (AbstractDRS a, DRSAtom b) => (b -> a) -> b -> a
- drsFunctionCompose :: (b -> c) -> (a -> b) -> a -> c
- (<<.>>) :: (b -> c) -> (a -> b) -> a -> c
- drsPurify :: DRS -> DRS
Exported
Type classes
Instances
| DRSAtom DRS # | |
Defined in Data.DRS.LambdaCalculus | |
| DRSAtom DRSRef # | |
Defined in Data.DRS.LambdaCalculus | |
class AbstractDRS a #
Type class for an AbstractDRS, which is either a resolved DRS, or
an 'unresolved DRS' that takes a DRSAtom and yields an AbstractDRS.
Instances
| AbstractDRS DRS # | |
Defined in Data.DRS.LambdaCalculus | |
| (DRSAtom a, AbstractDRS b) => AbstractDRS (a -> b) # | |
Defined in Data.DRS.LambdaCalculus | |
Alpha Conversion
renameVar :: Eq a => a -> [(a, a)] -> a #
Renames a variable v, iff v occurs in a variable conversion list.
Otherwise, v is returned unmodified
Beta Reduction
drsBetaReduce :: (AbstractDRS a, DRSAtom b) => (b -> a) -> b -> a #
Apply beta reduction on an AbstractDRS with a DRSAtom.
(<<@>>) :: (AbstractDRS a, DRSAtom b) => (b -> a) -> b -> a #
Infix notation for drsBetaReduce
Function Composition
drsFunctionCompose :: (b -> c) -> (a -> b) -> a -> c #
Apply function composition to two 'unresolved DRS's, yielding a new 'unresolved DRS'
(<<.>>) :: (b -> c) -> (a -> b) -> a -> c #
Infix notation for drsFunctionCompose