-
Notifications
You must be signed in to change notification settings - Fork 0
/
french_conjugations.lisp
78 lines (70 loc) · 2.56 KB
/
french_conjugations.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
(defun trans (x)
(cond ((equal x "to go") "aller")
((equal x "to make") "faire")
((equal x "to have") "avoir")
((equal x "to eat") "manger")
((equal x "to drink") "boire")
((equal x "to burn") "incendier")
)
)
;;General function to send verbs to appropriate conjugation function.
(defun conj (x)
(cond ((equal x "aller") (aller-conj))
((equal x "manger") (manger-conj))
((equal x "boire") (boire-conj))
((equal x "faire") (faire-conj))
((equal x "etre") (etre-conj))
((equal (subseq (reverse x) 0 2) "re") (reg-er-conj (subseq x 0 (- (length x) 2))))
)
)
(defun reg-er-conj (stem)
(cond ((equal *L2-pronoun* "je") (concatenate 'string stem "e"))
((or (equal *L2-pronoun* "elle") (equal *L2-pronoun* "il")) (concatenate 'string stem "e"))
((equal *L2-pronoun* "vous") (concatenate 'string stem "ez"))
((equal *L2-pronoun* "tu") (concatenate 'string stem "es"))
((equal *L2-pronoun* "nous") (concatenate 'string stem "ons"))
((or (equal *L2-pronoun* "ils") (equal *L2-pronoun* "elles")) (concatenate 'string stem "ent"))
)
)
(defun manger-conj ()
(cond ((equal *L2-pronoun* "nous") "mangeons")
(t (reg-er-conj "mang"))
)
)
(defun aller-conj ()
(cond
((equal *L2-pronoun* "je") "vais")
((or (equal *L2-pronoun* "elle") (equal *L2-pronoun* "il")) "va")
((equal *L2-pronoun* "vous") "allez")
((equal *L2-pronoun* "tu") "vas")
((equal *L2-pronoun* "nous") "allons")
((or (equal *L2-pronoun* "ils") (equal *L2-pronoun* "elles")) "vont")
)
)
(defun boire-conj ()
(cond ((equal *L2-pronoun* "je") "bois")
((or (equal *L2-pronoun* "elle") (equal *L2-pronoun* "il")) "boit")
((equal *L2-pronoun* "vous") "buvez")
((equal *L2-pronoun* "tu") "bois")
((equal *L2-pronoun* "nous") "buvons")
((or (equal *L2-pronoun* "ils") (equal *L2-pronoun* "elles")) "boivent")
)
)
(defun faire-conj ()
(cond ((equal *L2-pronoun* "je") "fais")
((or (equal *L2-pronoun* "elle") (equal *L2-pronoun* "il")) "fait")
((equal *L2-pronoun* "vous") "faites")
((equal *L2-pronoun* "tu") "fais")
((equal *L2-pronoun* "nous") "faisons")
((or (equal *L2-pronoun* "ils") (equal *L2-pronoun* "elles")) "font")
)
)
(defun etre-conj ()
(cond ((equal *L2-pronoun* "je") "suis")
((or (equal *L2-pronoun* "elle") (equal *L2-pronoun* "il")) "est")
((equal *L2-pronoun* "vous") "etes")
((equal *L2-pronoun* "tu") "es")
((equal *L2-pronoun* "nous") "sommes")
((or (equal *L2-pronoun* "ils") (equal *L2-pronoun* "elles")) "sont")
)
)