Я получаю супер запутанную функцию, которую я пишу в Racket. Возможно, я слишком привык к синтаксису let ... in
от OCaml.racket create function/lambda in let
(define/public (get-rects)
(let wrap-edge ([(coords '()) (append coords tetramino-wh)])
(case current-type
[(0) (vector
(wrap-edge (list 0 0))
(wrap-edge (list tetramino-w 0))
(wrap-edge (list (* 2 tetramino-w) 0))
(wrap-edge (list (* 3 tetramino-w) 0)))])))
Я пытаюсь сделать что-то вдоль линий это что-то вроде OCaml:
let wrap_edge = ... in
// Create a vector using wrap-edge
Я не могу обернуть мою голову вокруг того, что лучший способ сделать это. Я знаю, что было бы легко определить обертку как родного брата, но если бы я захотел «впустить» что-то вроде этого, определите не правильный выбор ... Хотя я могу просто сделать это произвольно сложнее на себе. Должно ли это быть чем-то более похожим:
(let ([wrap-edge (lambda (coords) (append coords tetramino-wh))]))
Это единственный вариант? Просто кажется, что это так раздуто.
Хорошо! Спасибо за ссылку на руководство по стилю! – eatonphil