remove redundant parameters

This commit is contained in:
Krasimir Angelov
2026-05-26 11:01:32 +02:00
parent cab232a4f6
commit fe56b729b4

View File

@@ -27,96 +27,77 @@ lin
n9 = mkNum3 "kilenc" "kilencven" "kilencedik" ; n9 = mkNum3 "kilenc" "kilencven" "kilencedik" ;
-- : Sub10 ; -- 1 -- : Sub10 ; -- 1
pot01 = mkNum3 "egy" "tíz" "első" ** {n=Sg} ; pot01 = mkNum3 "egy" "tíz" "első" ;
-- : Digit -> Sub10 ; -- d * 1 -- : Digit -> Sub10 ; -- d * 1
pot0 d = d ; pot0 d = d ;
-- : Sub100 ; -- 10 -- : Sub100 ; -- 10
pot110 = {s = table {p => "tíz"} ; n = numNumber ; numtype = IsNum} ; pot110 = {s = table {p => "tíz"}} ;
-- : Sub100 ; -- 11 -- : Sub100 ; -- 11
pot111 = {s = table {p => "tizenegy"} ; n = numNumber ; numtype = IsNum} ; pot111 = {s = table {p => "tizenegy"}} ;
-- : Digit -> Sub100 ; -- 10 + d -- : Digit -> Sub100 ; -- 10 + d
pot1to19 d = pot1to19 d =
{s = table {p => "tizen" ++ d.s ! <Unit,p>} ; {s = table {p => "tizen" ++ d.s ! <Unit,p>}} ;
n = numNumber ; numtype = IsNum} ;
-- : Sub10 -> Sub100 ; -- coercion of 1..9 -- : Sub10 -> Sub100 ; -- coercion of 1..9
pot0as1 n = pot0as1 n =
{s = table {p => n.s ! <Unit,p>} ; {s = table {p => n.s ! <Unit,p>}} ;
n = numNumber ; numtype = IsNum} ;
-- : Digit -> Sub100 ; -- d * 10 -- : Digit -> Sub100 ; -- d * 10
pot1 d = pot1 d =
{s = table {p => d.s ! <Ten,p>} ; {s = table {p => d.s ! <Ten,p>}} ;
n = numNumber ; numtype = IsNum} ;
-- : Digit -> Sub10 -> Sub100 ; -- d * 10 + n -- : Digit -> Sub10 -> Sub100 ; -- d * 10 + n
pot1plus d e = pot1plus d e =
{s = table {p => (d.s ! <Ten,Attrib>) ++ e.s ! <Unit,p>} ; {s = table {p => (d.s ! <Ten,Attrib>) ++ e.s ! <Unit,p>}} ;
n = numNumber ; numtype = IsNum} ;
-- : Sub100 -> Sub1000 ; -- coercion of 1..99 -- : Sub100 -> Sub1000 ; -- coercion of 1..99
pot1as2 n = n ; pot1as2 n = n ;
-- : Sub1000 ; -- a hundred -- : Sub1000 ; -- a hundred
pot21 = pot21 =
{s = table {p => "száz"} ; {s = table {p => "száz"}} ;
n = numNumber ; numtype = IsNum} ;
-- : Sub10 -> Sub1000 ; -- m * 100 -- : Sub10 -> Sub1000 ; -- m * 100
pot2 d = pot2 d =
{s = table {p => (d.s ! <Unit,Attrib>) ++ "száz"} ; {s = table {p => (d.s ! <Unit,Attrib>) ++ "száz"}} ;
n = numNumber ; numtype = IsNum} ;
-- : Sub10 -> Sub100 -> Sub1000 ; -- m * 100 + n -- : Sub10 -> Sub100 -> Sub1000 ; -- m * 100 + n
pot2plus d e = pot2plus d e =
{s = table {p => (d.s ! <Unit,Attrib>) ++ "száz" ++ e.s ! p} ; {s = table {p => (d.s ! <Unit,Attrib>) ++ "száz" ++ e.s ! p}} ;
n = numNumber ; numtype = IsNum} ;
-- : Sub1000 -> Sub1000000 ; -- coercion of 1..999 -- : Sub1000 -> Sub1000000 ; -- coercion of 1..999
pot2as3 n = n ; pot2as3 n = n ;
-- : Sub1000000 ; -- a thousand -- : Sub1000000 ; -- a thousand
pot31 = pot31 =
{s = table {p => "ezer"} ; {s = table {p => "ezer"}} ;
n = numNumber ; numtype = IsNum} ;
-- : Sub1000 -> Sub1000000 ; -- m * 1000 -- : Sub1000 -> Sub1000000 ; -- m * 1000
pot3 n = pot3 n =
{s = table {p => n.s ! Attrib ++ "ezer"} ; {s = table {p => n.s ! Attrib ++ "ezer"}} ;
n = numNumber ; numtype = IsNum} ;
-- : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n -- : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n
pot3plus n m = pot3plus n m =
{s = table {p => n.s ! Attrib ++ "ezer" ++ m.s ! p} ; {s = table {p => n.s ! Attrib ++ "ezer" ++ m.s ! p}} ;
n = numNumber ; numtype = IsNum} ;
pot3decimal d = pot3decimal d =
{s = table {p => d.s ! NCard ++ "ezer"} ; {s = table {p => d.s ! NCard ++ "ezer"}} ;
n = numNumber ; numtype = IsNum} ;
pot3as4 n = n ; pot3as4 n = n ;
pot41 = pot41 =
{s = table {p => "egymillió"} ; {s = table {p => "egymillió"}} ;
n = numNumber ; numtype = IsNum} ;
pot4 n = pot4 n =
{s = table {p => n.s ! Attrib ++ "millió"} ; {s = table {p => n.s ! Attrib ++ "millió"}} ;
n = numNumber ; numtype = IsNum} ;
pot4plus n m = pot4plus n m =
{s = table {p => n.s ! Attrib ++ "millió" ++ m.s ! p} ; {s = table {p => n.s ! Attrib ++ "millió" ++ m.s ! p}} ;
n = numNumber ; numtype = IsNum} ;
pot4as5 n = n ; pot4as5 n = n ;
pot4decimal d = pot4decimal d =
{s = table {p => d.s ! NCard ++ "millió"} ; {s = table {p => d.s ! NCard ++ "millió"}} ;
n = numNumber ; numtype = IsNum} ;
pot51 = pot51 =
{s = table {p => "egymilliárd"} ; {s = table {p => "egymilliárd"}} ;
n = numNumber ; numtype = IsNum} ;
pot5 n = pot5 n =
{s = table {p => n.s ! Attrib ++ "milliárd"} ; {s = table {p => n.s ! Attrib ++ "milliárd"}} ;
n = numNumber ; numtype = IsNum} ;
pot5plus n m = pot5plus n m =
{s = table {p => n.s ! Attrib ++ "milliárd" ++ m.s ! p} ; {s = table {p => n.s ! Attrib ++ "milliárd" ++ m.s ! p}} ;
n = numNumber ; numtype = IsNum} ;
pot5decimal d = pot5decimal d =
{s = table {p => d.s ! NCard ++ "milliárd"} ; {s = table {p => d.s ! NCard ++ "milliárd"}} ;
n = numNumber ; numtype = IsNum} ;
oper oper
LinDigit : Type = {s : DForm*Place => Str ; n : Number} ; LinDigit : Type = {s : DForm*Place => Str} ;
mkNum3 : (x1,_,x3 : Str) -> LinDigit = \három,harminc,harmadik -> mkNum3 : (x1,_,x3 : Str) -> LinDigit = \három,harminc,harmadik ->
mkNum5 három harminc három harminc harmadik ; mkNum5 három harminc három harminc harmadik ;
@@ -126,13 +107,8 @@ oper
<Ten,Indep> => ti ; <Ten,Indep> => ti ;
<Unit,Attrib> => ua ; <Unit,Attrib> => ua ;
<Ten, Attrib> => ta } ; <Ten, Attrib> => ta } ;
-- ord = ord ; -- TODO figure out where to use ordinal
n = numNumber ;
numType = IsNum ;
} ; } ;
numNumber = Sg ;
-- numerals as sequences of digits -- numerals as sequences of digits
lincat lincat
Dig = TDigit ; Dig = TDigit ;
@@ -143,8 +119,7 @@ oper
-- : Dig -> Digits -> Digits ; -- 876 -- : Dig -> Digits -> Digits ; -- 876
IIDig d i = { IIDig d i = {
s = \\x => d.s ++ BIND ++ i.s ! x ; s = \\x => d.s ++ BIND ++ i.s ! x
n = numNumber
} ; } ;
D_0 = mkDig "0" ; D_0 = mkDig "0" ;
@@ -159,9 +134,8 @@ oper
D_9 = mkDig "9" ; D_9 = mkDig "9" ;
PosDecimal d = d ** {hasDot=False} ; PosDecimal d = d ** {hasDot=False} ;
NegDecinal d = { NegDecimal d = {
s = \\x => "-" ++ BIND ++ d.s ! x ; s = \\x => "-" ++ BIND ++ d.s ! x ;
n = numNumber ;
hasDot=False hasDot=False
} ; } ;
IFrac d i = { IFrac d i = {
@@ -170,19 +144,16 @@ oper
True => BIND ; True => BIND ;
False => BIND ++ "." ++ BIND False => BIND ++ "." ++ BIND
} ++ i.s ; } ++ i.s ;
n = numNumber ;
hasDot=True hasDot=True
} ; } ;
oper oper
mkDig : Str -> TDigit = \s -> { mkDig : Str -> TDigit = \s -> {
s = s ; s = s ;
n = numNumber
} ; } ;
TDigit = { TDigit = {
s : Str ; -- TODO add ordinals s : Str ; -- TODO add ordinals
n : Number
} ; } ;
} }