0
我正在用Racket編寫的函數感到困惑。我可能太習慣OCaml的let ... in
語法。球拍創建函數/ lambda in
(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
我不能換我的頭周圍做什麼最好的方法是。我知道將wrap-edge定義爲兄弟會很容易,但是如果我想要一種「讓步」的東西,定義並不是正確的選擇......雖然我可能會讓自己變得更加困難。它應該更像是:
(let ([wrap-edge (lambda (coords) (append coords tetramino-wh))]))
這是唯一的選擇嗎?這樣做似乎很臃腫。
好的!感謝您的風格指南參考! – eatonphil 2015-02-09 00:06:13