forked from GitHub/gf-core
paraphrase works a little better now ; added examples/paraphrase for testing
This commit is contained in:
26
examples/paraphrase/City.gf
Normal file
26
examples/paraphrase/City.gf
Normal file
@@ -0,0 +1,26 @@
|
||||
abstract City = {
|
||||
|
||||
cat S ; City ; Country ; Adj ;
|
||||
|
||||
data
|
||||
PredIn : City -> Country -> S ;
|
||||
fun
|
||||
PredAdj : City -> Adj -> S ;
|
||||
Capital : Country -> City ;
|
||||
CountryAdj : Adj -> Country ;
|
||||
data
|
||||
Stockholm, Helsinki : City ;
|
||||
Sweden, Finland : Country ;
|
||||
Swedish, Finnish : Adj ;
|
||||
|
||||
def
|
||||
PredAdj city x = PredIn city (CountryAdj x) ;
|
||||
|
||||
Capital Finland = Helsinki ;
|
||||
Capital Sweden = Stockholm ;
|
||||
|
||||
CountryAdj Finnish = Finland ;
|
||||
CountryAdj Swedish = Sweden ;
|
||||
|
||||
|
||||
}
|
||||
16
examples/paraphrase/CityEng.gf
Normal file
16
examples/paraphrase/CityEng.gf
Normal file
@@ -0,0 +1,16 @@
|
||||
concrete CityEng of City = {
|
||||
|
||||
lincat S, City, Country, Adj = Str ;
|
||||
|
||||
lin
|
||||
PredIn ci co = ci ++ "is in" ++ co ;
|
||||
PredAdj ci ad = ci ++ "is" ++ ad ;
|
||||
Capital co = "the capital of" ++ co ;
|
||||
CountryAdj ad = "the" ++ ad ++ "country" ;
|
||||
Stockholm = "Stockholm" ;
|
||||
Helsinki = "Helsinki" ;
|
||||
Sweden = "Sweden" ;
|
||||
Finland = "Finland" ;
|
||||
Swedish = "Swedish" ;
|
||||
Finnish = "Finnish" ;
|
||||
}
|
||||
29
examples/paraphrase/Nat.gf
Normal file
29
examples/paraphrase/Nat.gf
Normal file
@@ -0,0 +1,29 @@
|
||||
abstract Nat = {
|
||||
|
||||
cat Nat ;
|
||||
|
||||
data
|
||||
Zero : Nat ;
|
||||
Succ : Nat -> Nat ;
|
||||
|
||||
fun one : Nat ;
|
||||
def one = Succ Zero ;
|
||||
|
||||
fun plus : Nat -> Nat -> Nat ;
|
||||
def plus x Zero = x ;
|
||||
def plus x (Succ y) = Succ (plus x y) ;
|
||||
|
||||
fun twice : Nat -> Nat ;
|
||||
def twice x = plus x x ;
|
||||
|
||||
fun times : Nat -> Nat -> Nat ;
|
||||
def times x Zero = Zero ;
|
||||
def times x (Succ y) = plus (times x y) x ;
|
||||
|
||||
fun four : Nat ;
|
||||
def four = twice (twice one) ;
|
||||
|
||||
fun exp : Nat -> Nat ;
|
||||
def exp Zero = one ;
|
||||
def exp (Succ x) = twice (exp x) ;
|
||||
}
|
||||
Reference in New Issue
Block a user