R
Size: a a a
R
R
R
R
R
R
ʰ
ʰ
ʰ
ʰ
(import 'lib/println.rf' 'lib/method.rf')
(def rectangle x y
(ret
x &x
y &y
perimeter (lambda
(* (+
(struct x &args)
(struct y &args)
) 2)
)
area (lambda
(* (struct x &args) (struct y &args))
)
)
)
(def square a
(rectangle &a &a &args)
)
(def describe
(set x (struct x &args))
(set y (struct y &args))
(println
(if (== &x &y)
(ret 'Квадрат со стороной' &x)
else
(ret 'Прямоугольник' &x на &y)
)
(str '(Площадь: ' (method area &args) ')')
(str '(Периметр: ' (method perimeter &args) ')')
)
)
(set p1 (rectangle 5 4))
(set p2 (square 8))
(describe &p1)
(describe &p2)
ʰ
waldemar@onelab:~/Desktop/rafael$ ./rafael main.rf
Прямоугольник 5 на 4 (Площадь: 20) (Периметр: 18)
Квадрат со стороной 8 (Площадь: 64) (Периметр: 32)
ʰ
(import 'lib/println.rf' 'lib/method.rf')
(def rectangle x y
(ret
x &x
y &y
perimeter (lambda
(* (+
(struct x &args)
(struct y &args)
) 2)
)
area (lambda
(* (struct x &args) (struct y &args))
)
)
)
(def square a
(rectangle &a &a &args)
)
(def describe
(set x (struct x &args))
(set y (struct y &args))
(println
(if (== &x &y)
(ret 'Квадрат со стороной' &x)
else
(ret 'Прямоугольник' &x на &y)
)
(str '(Площадь: ' (method area &args) ')')
(str '(Периметр: ' (method perimeter &args) ')')
)
)
(set p1 (rectangle 5 4))
(set p2 (square 8))
(describe &p1)
(describe &p2)
S[
(import 'lib/println.rf' 'lib/method.rf')
(def rectangle x y
(ret
x &x
y &y
perimeter (lambda
(* (+
(struct x &args)
(struct y &args)
) 2)
)
area (lambda
(* (struct x &args) (struct y &args))
)
)
)
(def square a
(rectangle &a &a &args)
)
(def describe
(set x (struct x &args))
(set y (struct y &args))
(println
(if (== &x &y)
(ret 'Квадрат со стороной' &x)
else
(ret 'Прямоугольник' &x на &y)
)
(str '(Площадь: ' (method area &args) ')')
(str '(Периметр: ' (method perimeter &args) ')')
)
)
(set p1 (rectangle 5 4))
(set p2 (square 8))
(describe &p1)
(describe &p2)
ʰ
ʰ
ʰ
ʰ
ʰ