LINUX.ORG.RU

История изменений

Исправление loz, (текущая версия) :

Видишь ли, в школе учат, что линия - это (0, 100) — (200, 300).

Можно попробовать объяснить (кстати, не знаю как это обычно происходит?) что `(0, 100)` это просто форма записи точки через пару координат, разделенных запятой. Что сама точка это не ее запись, и одну и ту же точку можно описать множеством различных способов. И в данном языке точка записывается как `0x100`. Что думать надо точками и линиями, а потом переводить свои мысли в нужную запись.

Но реально пока у тебя претензия только к записи точки, кодирование цвета типа `#aabbcc` и прочего не вызывает вопроса, потому что этому даже не учат.

PS: можешь упростить процесс ученикам =)

red>> точка: func [x y] [make pair! reduce [x y ]]
== func [x y][make pair! reduce [x y]]
red>> точка 5 5
== 5x5
red>> линия: func [p1 p2] [reduce ['line p1 p2]]
== func [p1 p2][reduce ['line p1 p2]]
red>> линия точка 5 5 точка 10 10
== [line 5x5 10x10]
red>> показать: func [what] [view compose/deep [base (reduce ['draw what])]]
== func [what][view compose/deep [base (reduce ['draw what])]]
red>> показать линия точка 5 5 точка 10 10

Исходная версия loz, :

Видишь ли, в школе учат, что линия - это (0, 100) — (200, 300).

Можно попробовать объяснить (кстати, не знаю как это обычно происходит?) что `(0, 100)` это просто форма записи точки через пару координат, разделенных запятой. Что сама точка это не ее запись, и одну и ту же точку можно описать множеством различных способов. И в данном языке точка записывается как `0x100`.

Но реально пока у тебя претензия только к записи точки, кодирование цвета типа `#aabbcc` и прочего не вызывает вопроса, потому что этому даже не учат.

PS: можешь упростить процесс ученикам =)

red>> точка: func [x y] [make pair! reduce [x y ]]
== func [x y][make pair! reduce [x y]]
red>> точка 5 5
== 5x5
red>> линия: func [p1 p2] [reduce ['line p1 p2]]
== func [p1 p2][reduce ['line p1 p2]]
red>> линия точка 5 5 точка 10 10
== [line 5x5 10x10]
red>> показать: func [what] [view compose/deep [base (reduce ['draw what])]]
== func [what][view compose/deep [base (reduce ['draw what])]]
red>> показать линия точка 5 5 точка 10 10