Skip to content

Instantly share code, notes, and snippets.

@Anniepoo
Created May 9, 2020 01:01
Show Gist options
  • Save Anniepoo/bb06dea99d2b28bb1efaadee25c09039 to your computer and use it in GitHub Desktop.
Save Anniepoo/bb06dea99d2b28bb1efaadee25c09039 to your computer and use it in GitHub Desktop.
english(X) :-
phrase(sentence, X).
sentence --> sentence(_).
sentence(Number) -->
noun_phrase(Number),
verb_phrase(Number).
noun_phrase(Number) -->
determiner(Number),
noun(Number).
verb_phrase(Number) -->
verb(Number),
noun_phrase(Number).
verb_phrase(Number) -->
verb(Number),
sentence(Number).
determiner(singular) --> [a].
determiner(singular) --> [the].
determiner(plural) --> [].
noun(singular) -->
[empire],
[state],
[building].
noun(plural) -->
[Noun],
{
phrase(noun(singular), [Singular]),
atom_concat(Singular, s, Noun)
}.
noun(singular) --> [cat].
noun(plural) --> [cats].
noun(singular) --> [mouse].
noun(plural) --> [mice].
verb(singular) --> [scares].
verb(plural) --> [scare].
verb(singular) --> [hates].
verb(plural) --> [hate].
foo(X, Y) :-
bar(X, A),
blah(A, B),
baz(B, Y).
foo -->
bar,
blah,
baz.
bar(X,X).
blah(X,X).
baz(X,X).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment