more Finnish

This commit is contained in:
aarne
2005-06-29 09:31:56 +00:00
parent d25419c8ed
commit 3f8fecbf30
7 changed files with 111 additions and 85 deletions

View File

@@ -27,7 +27,7 @@ lin
Eat = PresV2 (dirV2 eat_V) ;
Bite = PresV2 (dirV2 bite_V) ;
Suck = PresV2 (dirV2 suck_V) ;
----- See = PresV2 (dirV2 see_V) ;
See = PresV2 (dirV2 see_V) ;
Hear = PresV2 (dirV2 hear_V) ;
Know = PresV2 (dirV2 know_V) ;
Smell = PresV2 (dirV2 smell_V) ;
@@ -37,7 +37,7 @@ lin
Hunt = PresV2 (dirV2 hunt_V) ;
Hit = PresV2 (dirV2 hit_V) ;
Cut = PresV2 (dirV2 cut_V) ;
----- Split = PresV2 (dirV2 split_V) ;
Split = PresV2 (dirV2 split_V) ;
Stab = PresV2 (dirV2 stab_V) ;
Scratch = PresV2 (dirV2 scratch_V) ;
Hold = PresV2 (dirV2 hold_V) ;
@@ -47,11 +47,11 @@ lin
Wipe = PresV2 (dirV2 wipe_V) ;
Pull = PresV2 (dirV2 pull_V) ;
Push = PresV2 (dirV2 push_V) ;
----- Throw = PresV2 (dirV2 throw_V) ;
----- Tie = PresV2 (dirV2 tie_V) ;
----- Count = PresV2 (dirV2 count_V) ;
Throw = PresV2 (dirV2 throw_V) ;
Tie = PresV2 (dirV2 tie_V) ;
Count = PresV2 (dirV2 count_V) ;
----- Think = PresV think_V ;
Think = PresV think_V ;
Spit = PresV spit_V ;
Vomit = PresV vomit_V ;
Blow = PresV blow_V ;
@@ -61,13 +61,13 @@ lin
Live = PresV live_V ;
Die = PresV die_V ;
Dig = PresV dig_V ;
----- Swim = PresV swim_V ;
Swim = PresV swim_V ;
Fly = PresV fly_V ;
Walk = PresV walk_V ;
Come = PresV come_V ;
Lie = PresV lie_V ;
Sit = PresV sit_V ;
----- Stand = PresV stand_V ;
Stand = PresV stand_V ;
Turn = PresV turn_V ;
Fall = PresV fall_V ;
Sing = PresV sing_V ;
@@ -76,24 +76,24 @@ lin
Float = PresV float_V ;
Flow = PresV flow_V ;
Freeze = PresV freeze_V ;
----- Swell = PresV swell_V ;
Swell = PresV swell_V ;
Burn = PresV burn_V ;
----- Give = PresV3 (dirV3 give_V "to") ;
Give = PresV3 (dirV3 give_V "to") ;
-- Say = ;
The_One = DefOneNP ;
----- The_Many = DefNumNP NoNum ;
The_Many = DefNumNP NoNum ;
A = IndefOneNP ;
This = DetNP this_Det ;
That = DetNP that_Det ;
----- All = NDetNP all_NDet NoNum ;
All = NDetNP all_NDet NoNum ;
Many = DetNP many_Det ;
Some_One = DetNP some_Det ;
----- Some_Many = NDetNP some_NDet NoNum ;
----- Few = DetNP few_Det ;
----- Other = DetNP other_Det ;
Some_Many = NDetNP some_NDet NoNum ;
Few = DetNP few_Det ;
Other = DetNP other_Det ;
One = IndefNumNP one_Num ;
Two = IndefNumNP two_Num ;
@@ -106,8 +106,8 @@ lin
I = i_NP ;
You_One = thou_NP ;
He = he_NP ;
----- We = we_NP ;
----- You_Many = you_NP ;
We = we_NP ;
You_Many = you_NP ;
They = they_NP ;
-- Nouns
@@ -118,8 +118,8 @@ lin
Child = UseN child_N ;
Wife = UseN wife_N ;
Husband = UseN husband_N ;
----- Mother = UseN mother_N ;
----- Father = UseN father_N ;
Mother = UseN mother_N ;
Father = UseN father_N ;
Animal = UseN animal_N ;
Fish = UseN fish_N ;
Bird = UseN bird_N ;
@@ -173,7 +173,7 @@ lin
Star = UseN star_N ;
Water = UseN water_N ;
Rain = UseN rain_N ;
----- River = UseN river_N ;
River = UseN river_N ;
Lake = UseN lake_N ;
Sea = UseN sea_N ;
Salt = UseN salt_N ;
@@ -206,7 +206,7 @@ lin
Wide = ModPosA wide_ADeg ;
Thick = ModPosA thick_ADeg ;
Heavy = ModPosA heavy_ADeg ;
----- Small = ModPosA small_ADeg ;
Small = ModPosA small_ADeg ;
Short = ModPosA short_ADeg ;
Narrow = ModPosA narrow_ADeg ;
Thin = ModPosA thin_ADeg ;
@@ -215,7 +215,7 @@ lin
Yellow = ModPosA yellow_ADeg ;
White = ModPosA white_ADeg ;
Black = ModPosA black_ADeg ;
----- Warm = ModPosA warm_ADeg ;
Warm = ModPosA warm_ADeg ;
Cold = ModPosA cold_ADeg ;
Full = ModPosA full_ADeg ;
New = ModPosA new_ADeg ;

View File

@@ -113,7 +113,7 @@ lin
leather_N = regN "nahka" ; --- nahan
leave_V2 = dirV2 (regV "jättää") ;
like_V2 = caseV2 (regV "pitää") elative ;
--3 listen_V2 = caseV2 (reg3V "kuunnella" "kuuntelen" "kuuntelin") partitive ;
listen_V2 = caseV2 (reg3V "kuunnella" "kuuntelen" "kuuntelin") partitive ;
live_V = regV "elää" ;
long_ADeg = mkADeg (regN "pitkä") "pitempi" "pisin" ;
lose_V2 = dirV2 (regV "hävitä") ; --- hukata
@@ -151,7 +151,7 @@ lin
red_ADeg = regADeg "punainen" ;
religion_N = regN "uskonto" ;
restaurant_N = regN "ravintola" ;
---- river_N = reg3N "joki" "joen" "jokia" ;
river_N = nArpi "joki" ;
---- rock_N = regN "kallio" ;
roof_N = regN "katto" ;
rubber_N = regN "kumi" ;
@@ -161,7 +161,9 @@ lin
science_N = regN "tiede" ;
sea_N = reg2N "meri" "meriä" ;
seek_V2 = dirV2 (regV "etsiä") ;
---- see_V2 = dirV2 (irregV "see" "saw" "seen") ;
see_V2 = dirV2 (
mkV "nähdä" "näkee" "näen" "näkevät" "nähkää" "nähdään"
"näki" "näin" "näkisi" "nähnyt" "nähty" "nähdyn") ;
---- sell_V3 = dirV3 (regV "myydä") allative ;
---- send_V3 = dirV3 (regV "lähettää") allative ;
sheep_N = regN "lammas" ;
@@ -173,12 +175,12 @@ lin
silver_N = regN "hopea" ;
sister_N = regN "sisko" ;
sleep_V = regV "nukkua" ;
---- small_ADeg = regADeg "small" ;
small_ADeg = mkADeg (reg3N "pieni" "pienen" "pieniä") "pienempi" "pienin" ;
snake_N = regN "käärme" ;
sock_N = regN "sukka" ;
speak_V2 = dirV2 (regV "puhua") ;
star_N = reg2N "tähti" "tähtiä" ;
---- steel_N = regN "teräs" ;
steel_N = regN "teräs" ;
stone_N = reg2N "kivi" "kiviä" ;
stove_N = reg3N "liesi" "lieden" "liesiä" ;
student_N = reg2N "opiskelija" "opiskelijoita" ;
@@ -202,8 +204,12 @@ lin
university_N = regN "yliopisto" ;
village_N = regN "kylä" ;
wait_V2 = caseV2 (regV "odottaa") partitive ;
walk_V = (regV "kävellä") ;
---- warm_ADeg = regADeg "warm" ;
walk_V = regV "kävellä" ;
warm_ADeg = mkADeg
(mkN "lämmin" "lämpimän" "lämpimänä" "lämmintä" "lämpimään"
"lämpiminä" "lämpimissä" "lämpimien" "lämpimiä" "lämpimiin"
nonhuman)
"lämpimämpi" "lämpimin" ;
war_N = regN "sota" ;
watch_V2 = dirV2 (regV "katsella") ;
water_N = reg3N "vesi" "veden" "vesiä" ;
@@ -218,7 +224,10 @@ lin
yellow_ADeg = regADeg "keltainen" ;
young_ADeg = mkADeg (reg2N "nuori" "nuoria") "nuorempi" "nuorin" ;
---- do_V2 = dirV2 (mkV "do" "does" "did" "done" "doing") ;
do_V2 = dirV2 (
mkV "tehdä" "tekee" "teen" "tekevät" "tehkää" "tehdään"
"teki" "tein" "tekisi" "tehnyt" "tehty" "tehdyn") ;
now_Adv = mkAdv "nyt" ;
already_Adv = mkAdv "jo" ;
song_N = regN "laulu" ;

View File

@@ -807,8 +807,11 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
--
-- The present, past, conditional. and infinitive stems, acc. to Koskenniemi.
-- Unfortunately not enough (without complicated processes).
--- We moreover give grade alternation forms as arguments, to avoid
--- code exposion in gfr.
-- We moreover give grade alternation forms as arguments, since it does not
-- happen automatically.
--- A problem remains with the verb "seistä", where the infinitive
--- stem has vowel harmony "ä" but the others "a", thus "seisoivat" but "seiskää".
mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
\tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun ->
@@ -917,7 +920,10 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
-- For cases where grade alternation is not affected by the imperfect "i".
vOttaa : (_,_ : Str) -> Verb = \ottaa,otan ->
vHuoltaa ottaa otan (Predef.tk 2 ottaa + "i") (Predef.tk 2 otan + "in") ;
let
i = if_then_Str (pbool2bool (Predef.occurs "ou" ottaa)) "i" "oi"
in
vHuoltaa ottaa otan (Predef.tk 2 ottaa + i) (Predef.tk 2 otan + i + "n") ;
-- For "poistaa", "ryystää".

View File

@@ -294,12 +294,12 @@ regN = \vesi ->
vesi (vesi + "n") (vesi + "n"+a) (vesi + a) (vesi + a+"n")
(ves + "in"+a) (ves + "iss"+a) (ves + "iden") (ves + "it"+a)
(ves + "isiin") ;
"in" => sLiitin vesi ;
"is" => sNauris (vesi + ("t" + a)) ;
"ut" | "yt" => sRae vesi (ves + ("en" + a)) ;
"as" | "äs" => sRae vesi (strongGrade ves + (a + "n" + a)) ;
"ar" | "är" => sRae vesi (strongGrade ves + ("ren" + a)) ;
_ => case i of {
"n" => sLiitin vesi ;
"s" => sTilaus vesi (ves + ("ksen" + a)) ;
"i" => sBaari (vesi + a) ;
"e" => sRae vesi (strongGrade (ves + "e") + "en" + a) ;
@@ -402,10 +402,10 @@ regV soutaa =
u = ifTok Str a "a" "u" "y" ;
joi = Predef.tk 2 juo + (o + "i")
in case ta of {
"ta" | "tä" => vOttaa soutaa (souda + "n") ;
"st" => vJuosta soutaa soudan (juo + "s"+u+"t") (juo + "t"+u) ;
"nn" | "rr" | "ll" => vJuosta soutaa soudan (juo + o+u+"t") (juo + "t"+u) ;
_ => case aa of {
"aa" | "ää" => vOttaa soutaa (souda + "n") ;
"da" | "dä" => vJuoda soutaa joi ;
"ta" | "tä" => vOsata soutaa ;
_ => vHukkua soutaa souda
@@ -441,10 +441,10 @@ reg3V soutaa soudan soudin =
u = ifTok Str a "a" "u" "y" ;
joi = init soudin
in case ta of {
"ta" | "tä" => vHuoltaa soutaa soudan (init soudin) soudin ;
"st" => vJuosta soutaa soudan (juo + "s"+u+"t") (juo + "t"+u) ;
"nn" | "rr" | "ll" => vJuosta soutaa soudan (juo + o+u+"t") (juo + "t"+u) ;
_ => case aa of {
"aa" | "ää" => vHuoltaa soutaa soudan (init soudin) soudin ;
"da" | "dä" => vJuoda soutaa joi ;
"ta" | "tä" => vOsata soutaa ;
_ => vHukkua soudan souda

View File

@@ -15,11 +15,12 @@ concrete StructuralFin of Structural =
above_Prep = prepPostpGen "yläpuolella" ;
after_Prep = prepPostpGen "jälkeen" ;
all8mass_Det = mkDeterminer singular (kaikkiPron Sg) ;
---- all_NDet = kaikkiDet ;
all_NDet = mkDeterminerNum (kaikkiPron Pl) ;
almost_Adv = ss "melkein" ;
although_Subj = ss "vaikka" ;
although_Subj = ss "vaikka" ;
and_Conj = ss "ja" ** {n = Pl} ;
because_Subj = ss "koska" ;
before_Prep = prepPrep "ennen" Part ;
behind_Prep = prepPostpGen "takana" ;
between_Prep = prepPostpGen "välissä" ;
@@ -63,13 +64,14 @@ concrete StructuralFin of Structural =
possess_Prep = prepCase Gen ;
quite_Adv = ss "aika" ;
she_NP = pronNounPhrase pronHan ;
so_Adv = ss "niin" ;
somebody_NP = {
s = \\f => jokuPron ! Sg ! (npForm2Case Sg f) ;
n = Sg ;
p = NP3
} ;
some_Det = mkDeterminerGen Sg (jokinPron ! Sg) (jokuPron ! Sg) ;
---- some_NDet n = mkDeterminerGenNum n (jokinPron ! Pl) (jokuPron ! Pl) ;
some_NDet = mkDeterminerGenNum (jokinPron ! Pl) (jokuPron ! Pl) ;
something_NP = {
s = \\f => jokinPron ! Sg ! (npForm2Case Sg f) ; -- näin kaiken
n = Sg ;
@@ -79,11 +81,11 @@ concrete StructuralFin of Structural =
that_Det = mkDeterminer Sg (\\c => pronTuo.s ! PCase c) ;
that_NP = pronNounPhraseNP pronTuo ;
therefore_Adv = ss "siksi" ;
---- these_NDet n = mkDeterminerNum n (\\c => pronNama.s ! PCase c) ;
these_NDet = mkDeterminerNum (\\c => pronNama.s ! PCase c) ;
they_NP = pronNounPhrase pronHe ; --- ne
this_Det = mkDeterminer Sg (\\c => pronTama.s ! PCase c) ;
this_NP = pronNounPhraseNP pronTama ;
---- those_NDet n = mkDeterminerNum n (\\c => pronNuo.s ! PCase c) ;
those_NDet = mkDeterminerNum (\\c => pronNuo.s ! PCase c) ;
thou_NP = pronNounPhrase pronSina ;
through_Prep = prepPostpGen "kautta" ;
too_Adv = ss "liian" ;
@@ -91,16 +93,21 @@ concrete StructuralFin of Structural =
under_Prep = prepPostpGen "alla" ;
very_Adv = ss "hyvin" ;
want_VV = nomVerbVerb (vOsata "haluta") ;
---- we_NP = pronWithNum pronMe ;
we_NP = pronNounPhrase pronMe ;
what8many_IP = intPronWhat Pl ;
what8one_IP = intPronWhat Sg ;
when_IAdv = ss "koska" ;
when_Subj = ss "kun" ;
where_IAdv = ss "missä" ;
which8one_IDet = mikaDet ;
---- which8many_IDet n = mkDeterminerGenNum n (mikaInt ! Pl) (kukaInt ! Pl) ;
who8many_IP = intPronWho Pl ;
who8one_IP = intPronWho Sg ;
why_IAdv = ss "miksi" ;
without_Prep = prepPrep "ilman" Part ;
with_Prep = prepPostpGen "kanssa" ;
---- ye_NP = pronWithNum pronTe ;
ye_NP = pronNounPhrase pronTe ;
yes_Phr = ss ("Kyllä" ++ stopPunct) ;
you_NP = pronNounPhrase pronTe ;

View File

@@ -11,23 +11,23 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
i_NP = i_NP ;
thou_NP = thou_NP ;
he_NP = he_NP ;
---- we_NP = we_NP ;
we_NP = we_NP ;
you_NP = you_NP ;
they_NP = they_NP ;
---- who8many_IP = who8many_IP ;
---- who8one_IP = who8one_IP ;
---- what8many_IP = what8many_IP ;
---- what8one_IP = what8one_IP ;
who8many_IP = who8many_IP ;
who8one_IP = who8one_IP ;
what8many_IP = what8many_IP ;
what8one_IP = what8one_IP ;
-- Determiners
this_Det = this_Det ;
that_Det = that_Det ;
---- all_NDet = all_NDet ;
all_NDet = all_NDet ;
many_Det = many_Det ;
some_Det = some_Det ;
---- few_Det = mkDeterminer Pl "few" ;
---- other_Det = mkDeterminer Pl "other" ;
few_Det = mkDeterminer Pl (\\c => (sTalo "muutama").s ! NCase Pl c) ;
other_Det = mkDeterminer Pl (\\c => (sPuu "muu").s ! NCase Pl c) ;
-- Adverbs
@@ -46,9 +46,9 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
-- Prepositions
---- at_Prep = ss "at" ;
---- in_Prep = ss "in" ;
---- with_Prep = ss "with" ;
at_Prep = prepCase Adess ;
in_Prep = prepCase Iness ;
with_Prep = prepPostpGen "kanssa" ;
-- Numerals
@@ -83,12 +83,12 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
round_ADeg = regADeg "pyöreä" ;
sharp_ADeg = regADeg "terävä" ;
short_ADeg = short_ADeg ;
---- small_ADeg = small_ADeg ;
small_ADeg = small_ADeg ;
smooth_ADeg = regADeg "sileä" ;
straight_ADeg = mkADeg (regN "suora") "suorempi" "suorin" ;
thick_ADeg = thick_ADeg ;
thin_ADeg = thin_ADeg ;
---- warm_ADeg = warm_ADeg ;
warm_ADeg = warm_ADeg ;
wet_ADeg = mkADeg (regN "märkä") "märempi" "märin" ;
white_ADeg = white_ADeg ;
wide_ADeg = regADeg "leveä" ;
@@ -118,7 +118,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
egg_N = regN "muna" ;
eye_N = regN "silmä" ;
fat_N = regN "rasva" ;
---- father_N = UseN2 father_N2 ;
father_N = UseN2 father_N2 ;
feather_N = reg3N "höyhen" "höyhenen" "höyheniä" ; -----
fingernail_N = reg3N "kynsi" "kynnen" "kynsiä" ;
fire_N = reg2N "tuli" "tulia" ;
@@ -133,7 +133,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
hair_N = regN "hius" ;
hand_N = reg3N "käsi" "käden" "käsiä" ;
head_N = regN "pää" ;
heart_N = regN "sydän" ; -----
heart_N = regN "sydän" ; --- *sytämen
horn_N = reg2N "sarvi" "sarvia" ;
husband_N = man_N ; --- aviomies
ice_N = regN "jää" ;
@@ -146,7 +146,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
man_N = man_N ;
meat_N = meat_N ;
moon_N = moon_N ;
---- mother_N = UseN2 mother_N2 ;
mother_N = UseN2 mother_N2 ;
mountain_N = mountain_N ;
mouth_N = regN "suu" ;
name_N = reg2N "nimi" "nimiä" ;
@@ -155,19 +155,19 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
nose_N = regN "nenä" ;
person_N = regN "henkilö" ;
rain_N = regN "sade" ;
---- river_N = river_N ;
river_N = river_N ;
road_N = regN "tie" ;
root_N = regN "juuri" ; -----
root_N = reg3N "juuri" "juuren" "juuria" ; --- juurta *juurea
rope_N = reg3N "köysi" "köyden" "köysiä" ;
salt_N = regN "suola" ;
sand_N = regN "hiekka" ;
sea_N = sea_N ;
seed_N = regN "seed" ;
skin_N = regN "skin" ;
sky_N = regN "sky" ; -----
sky_N = regN "sky" ; --- taivaan *taipaan
smoke_N = regN "savu" ;
snake_N = snake_N ;
snow_N = regN "lumi" ; -----
snow_N = reg3N "lumi" "lumen" "lumia" ; --- lunta *lumea
star_N = star_N ;
stick_N = regN "keppi" ;
stone_N = stone_N ;
@@ -211,7 +211,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
hunt_V = regV "metsästää" ;
kill_V = regV "tappaa" ;
know_V =reg2V "tietää" "tiesin" ;
laugh_V = regV "nauraa" ; -----
laugh_V = reg3V "nauraa" "nauran" "nauroin" ;
lie_V = regV "maata" ;
live_V = live_V ;
play_V = UseV2 play_V2 ;
@@ -220,22 +220,24 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
rub_V = regV "hieroa" ;
say_V = regV "sanoa" ;
scratch_V = regV "raapia" ;
----- see_V = UseV2 see_V2 ;
see_V = UseV2 see_V2 ;
sew_V = regV "kylvää" ;
sing_V = regV "laulaa" ;
sit_V = regV "istua" ;
sleep_V = sleep_V ;
smell_V = regV "haista" ;
spit_V = regV "sylkeä" ;
---- split_V = split_V ;
split_V = reg2V "halkaista" "halkaisi" ;
squeeze_V = regV "puristaa" ;
stab_V = regV "pistää" ;
---- stand_V = stand_V ;
stand_V = mkV "seistä" "seisoo" "seison" "seisovat" "seiskää" "seistään"
"seisoi" "seisoin" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivät
suck_V = regV "imeä" ;
---- swell_V = swell_V ;
---- swim_V = swim_V ;
---- think_V = think_V ;
---- throw_V = throw_V ;
swell_V = mkV "turvota" "turpoaa" "turpoan" "turpoavat" "turvotkaa" "turvotaan"
"turposi" "turposin" "turpoaisi" "turvonnut" "turvottu" "turvotun" ;
swim_V = reg3V "uida" "uin" "uin" ;
think_V = reg3V "ajatella" "ajattelen" "ajattelin" ;
throw_V = regV "heittää" ;
tie_V = regV "sitoa" ;
turn_V = regV "kääntyä" ;
vomit_V = regV "oksentaa" ;

View File

@@ -157,6 +157,7 @@ oper
-- that is given to the noun that is being determined.
Determiner : Type = {s : Gender => Case => Str ; n : Number ; isNum : Bool} ;
DeterminerNum : Type = {s : Gender => Case => Str ; isNum : Bool} ;
detNounPhrase : Determiner -> CommNounPhrase -> NounPhrase = \joku, mies ->
{s = \\f => let {c = npForm2Case joku.n f} in
@@ -166,6 +167,15 @@ oper
p = NP3
} ;
numDetNounPhrase : DeterminerNum -> Numeral -> CommNounPhrase -> NounPhrase =
\joku, viisi, mies ->
{s = \\f => let {c = npForm2Case Pl f} in
joku.s ! mies.g ! c ++ viisi.s ! NPCase c ++
mkCaseNum joku.isNum Pl c (mies.s ! False) ;
n = Pl ;
p = NP3
} ;
mkCaseNum : Bool -> Number -> Case -> (Number => Case => Str) -> Str =
\isNum, n, c, mies ->
case <isNum,c> of {
@@ -183,28 +193,20 @@ oper
isNum = False
} ;
mkDeterminerGenNum : Numeral -> (_,_ : Case => Str) -> Determiner =
\n,mika,kuka ->
{s = table {
NonHuman => \\c => mika ! c ++ n.s ! NPCase c ;
Human => \\c => kuka ! c ++ n.s ! NPCase c
} ;
n = Pl ;
isNum = n.isNum
} ;
mkDeterminer : Number -> (Case => Str) -> Determiner = \n,kaikki ->
mkDeterminerGen n kaikki kaikki ;
mkDeterminerNum : Numeral -> (Case => Str) -> Determiner = \n,kaikki ->
mkDeterminerGenNum n kaikki kaikki ;
mkDeterminerNum : (Case => Str) -> DeterminerNum =
mkDeterminer Pl ;
mkDeterminerGenNum : (_,_ : Case => Str) -> DeterminerNum =
mkDeterminerGen Pl ;
jokainenDet = mkDeterminer Sg (caseTable Sg (sNainen "jokaista")) ;
kaikkiDet : Numeral -> Determiner = \n -> mkDeterminerNum n (kaikkiPron Pl) ;
kaikkiDet : DeterminerNum = mkDeterminerNum (kaikkiPron Pl) ;
useimmatDet = mkDeterminer Pl (caseTable Pl (sSuurin "useinta")) ;
mikaDet = mkDeterminerGen Sg (mikaInt ! Sg) (kukaInt ! Sg) ;
mitkaDet : Numeral -> Determiner = \n ->
mkDeterminerGenNum n (mikaInt ! Pl) (kukaInt ! Pl) ;
mitkaDet : DeterminerNum =
mkDeterminerGenNum (mikaInt ! Pl) (kukaInt ! Pl) ;
indefNounPhrase : Number -> CommNounPhrase -> NounPhrase = \n,mies ->
case n of {