RosettaCodeData/Task/General-FizzBuzz/Refal/general-fizzbuzz.refal
2024-07-13 15:19:22 -07:00

54 lines
947 B
Text

$ENTRY Go {
, <Numb <Card>>: s.Max
, <ReadFactors>: e.Factors
, <Iota 1 s.Max>: e.Nums
= <Each Fizz (e.Factors) e.Nums>;
};
Fizz {
s.I e.Facs, <Each Fac (s.I) e.Facs>: {
= <Prout <Symb s.I>>;
e.X = <Prout e.X>;
};
}
Fac {
(s.Fac e.FacWord) s.I, <Mod s.I s.Fac>: {
0 = e.FacWord;
s.X = ;
};
};
ReadFactors {
, <Card>: {
0 = ; = ;
e.Line = (<Line e.Line>) <ReadFactors>;
};
};
Line {
e.X, <Split ' ' e.X>: (e.Num) e.Word =
<Numb e.Num> <Trim ' ' e.Word>;
};
Split {
s.C e.X s.C e.Y = (e.X) e.Y;
s.C e.X = (e.X);
};
Trim {
s.C = ;
s.C s.C e.X = <Trim s.C e.X>;
s.C e.X s.C = <Trim s.C e.X>;
s.C s.I e.X = s.I <Trim s.C e.X>;
};
Iota {
s.End s.End = s.End;
s.Start s.End = s.Start <Iota <+ 1 s.Start> s.End>;
};
Each {
s.F (e.Arg) = ;
s.F (e.Arg) t.I e.X = <Mu s.F t.I e.Arg> <Each s.F (e.Arg) e.X>;
};