球拍创建功能/lambda在let中
我被我在Racket里写的一个函数弄糊涂了。我可能太习惯了球拍创建功能/lambda在let中,lambda,scheme,ocaml,racket,let,Lambda,Scheme,Ocaml,Racket,Let,我被我在Racket里写的一个函数弄糊涂了。我可能太习惯了让。。。在OCaml的语法中 (define/public (get-rects) (let wrap-edge ([(coords '()) (append coords tetramino-wh)]) (case current-type [(0) (vector (wrap-edge (list 0 0)) (wrap-e
让。。。在OCaml的
语法中
(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))]))
这是唯一的选择吗?这样做似乎太夸张了。对于这样的事情,在球拍中使用
定义可能更为惯用。您可以在现有函数中声明一个函数,然后将其正常使用
(define/public (get-rects)
(define (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)))]))
另请参见中关于let
vsdefine
的建议。对于类似的内容,仅使用define
可能更惯用。您可以在现有函数中声明一个函数,然后将其正常使用
(define/public (get-rects)
(define (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)))]))
另请参见中关于let
vsdefine
的建议。对于类似的内容,仅使用define
可能更惯用。您可以在现有函数中声明一个函数,然后将其正常使用
(define/public (get-rects)
(define (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)))]))
另请参见中关于let
vsdefine
的建议。对于类似的内容,仅使用define
可能更惯用。您可以在现有函数中声明一个函数,然后将其正常使用
(define/public (get-rects)
(define (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)))]))
另请参见中关于让与定义的建议。Ok!谢谢你的风格指南参考!好啊谢谢你的风格指南参考!好啊谢谢你的风格指南参考!好啊谢谢你的风格指南参考!