человекоподобного дсля" и до тайплевел проверки координат
robot is on 2D plane (bonus: with possible obtacles)
design an edsl to describe it's movements with commands like "move 3 meters to north" / "walk left while you don't hit an obtacle"
goals (bonus points it those are implemented in _compile_ time, not just a runtime assert):
1) commands should represent English sentences as mush as possible
example: "move 30 inches to left" can be 100% valid Scala code
2) think about how to restrict usage to either metrical or imperial unit system, i.e. they should not be mixed
example: "move 3 meters left" & "move 3 inches down" should not work
3, bonus) try to make the system as much fool-proof as you can, i.e. don't allow robot to execute apriori incorrect commands
example: when robot starts at position (0, 0), it cannot move north
tip: you can assume that plain is defined at compile time
в аду таких не помещают в котел, а заставляют кодить на недокументированном "англоязычном дсл", который писали не они
но когда еще куча монад с либок + самописных как ето вобще читать возможно, приходиться тратить кучу времени на изучение dsla вместе с кодом. каждый фп проект на скала же отличаеться друг от друга
Обсуждают сегодня