rename stuff + new ud lab draft

This commit is contained in:
Arianna Masciolini
2025-03-21 13:50:23 +01:00
parent 3d9659d987
commit 19fb44c64d
72 changed files with 148 additions and 184 deletions

View File

@@ -0,0 +1,15 @@
--# -path=.:../abstract
concrete MicroLangEng of MicroLang =
open MicroResEng
in {
lincat
N = Noun ;
lin
animal_N = mkN "animal" ;
apple_N = mkN "apple" ;
baby_N = mkN "baby" ;
woman_N = mkN "woman" "women" ;
}

View File

@@ -0,0 +1,44 @@
-- live-coded MicroResEng for Lab 2
resource MicroResEng = {
param
Number = Sg | Pl ;
oper
-- phonological patterns
sibilant : pattern Str
= #("s" | "x" | "ch" | "sh" | "z") ;
vowel : pattern Str
= #("a" | "e" | "i" | "o" | "u") ;
-- the type of nouns
Noun : Type = {s : Number => Str} ;
-- worst-case paradigm
mkNoun : (sg, pl : Str) -> Noun
= \sg, pl -> {s = table {Sg => sg ; Pl => pl}} ;
-- regular paradigm
regNoun : (sg : Str) -> Noun
= \sg -> mkNoun sg (sg + "s") ;
-- smart paradigm
smartNoun : (sg : Str) -> Noun
= \sg -> case sg of {
x + #vowel + "y" => regNoun sg ;
x + "y" => mkNoun sg (x + "ies") ;
x + #sibilant => mkNoun sg (sg + "es") ;
_ => regNoun sg
} ;
-- overloaded paradigm for lexicographers
mkN = overload {
mkN : (sg : Str) -> Noun = smartNoun ;
mkN : (sg, pl : Str) -> Noun = mkNoun ;
} ;
}