2018-01-11 10:16:53 +03:00
|
|
|
(use Array)
|
2018-06-05 11:05:33 +03:00
|
|
|
(Project.no-echo)
|
2018-01-11 10:16:53 +03:00
|
|
|
|
|
|
|
(deftype Age [x Int])
|
|
|
|
|
|
|
|
(defmodule Age
|
|
|
|
(defn = [a b]
|
2019-09-17 20:33:08 +03:00
|
|
|
(= (Age.x a) (Age.x b)))
|
2018-01-11 10:16:53 +03:00
|
|
|
(defn > [a b]
|
2019-09-17 20:33:08 +03:00
|
|
|
(> (Age.x a) (Age.x b)))
|
2018-01-15 19:28:19 +03:00
|
|
|
(defn < [a b]
|
2020-05-10 20:32:22 +03:00
|
|
|
(< (Age.x a) (Age.x b)))
|
|
|
|
|
|
|
|
(implements = Age.=)
|
|
|
|
(implements > Age.>)
|
|
|
|
(implements < Age.<)
|
|
|
|
)
|
2018-01-11 10:16:53 +03:00
|
|
|
|
|
|
|
(defn main []
|
2018-06-26 11:03:34 +03:00
|
|
|
(let-do [ints (Array.sort [10 3 75 40])
|
|
|
|
ages (Array.sort [(Age.init 10) (Age.init 3) (Age.init 75) (Age.init 40)])]
|
2018-01-15 19:28:19 +03:00
|
|
|
(IO.println &(Array.str &ints))
|
|
|
|
(IO.println &(Array.str &ages))))
|