Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
25
Task/Middle-three-digits/MLite/middle-three-digits.mlite
Normal file
25
Task/Middle-three-digits/MLite/middle-three-digits.mlite
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
val test_array = ["123","12345","1234567","987654321","10001","~10001","~123","~100","100","~12345","1","2","~1","~10","2002","~2002","0"];
|
||||
|
||||
fun even (x rem 2 = 0) = true | _ = false;
|
||||
|
||||
fun middleThreeDigits
|
||||
(h :: t, s, 1 ) = s @ " --> too small"
|
||||
| (h :: t, s, 2 ) = s @ " --> has even digits"
|
||||
| (h :: t, s, 3 ) where (len (h :: t) = 3) = s @ " --> " @ (implode (h :: t))
|
||||
| (h :: t, s, 3 ) = (middleThreeDigits ( sub (t, 0, (len t)-1), s, 3))
|
||||
| (h :: t, s, m) = if len (h :: t) < 3 then
|
||||
middleThreeDigits (h :: t, s, 1)
|
||||
else
|
||||
if even ` len (h :: t) then
|
||||
middleThreeDigits (h :: t, s, 2)
|
||||
else
|
||||
middleThreeDigits (h :: t, s, 3)
|
||||
|
||||
|
||||
| s = if sub (s, 0, 1) = "~" then
|
||||
middleThreeDigits (sub (explode s, 1, len s), s, 0)
|
||||
else
|
||||
middleThreeDigits (explode s, s, 0)
|
||||
;
|
||||
|
||||
map (println o middleThreeDigits) test_array;
|
||||
Loading…
Add table
Add a link
Reference in a new issue