It's very very easy. The "curry" is from functional languages(Haskell, OCaml, F#, ...).
The concept of curry is powerful when the following function form: (function-name option-argument input-argument) For example, we think about 2htdp/image. #lang racket (require 2htdp/image) (overlay/align/offset "left" "top" (circle 30 "solid" "green yellow") 0 0 (overlay/align/offset "left" "bottom" (circle 30 "solid" "khaki") 10 0 (overlay/align/offset "right" "top" (circle 30 "solid" "orchid") 0 10 (overlay/align/offset "right" "bottom" (circle 30 "solid" "cornflowerblue") -10 -10 (star-polygon 20 20 3 "solid" "navy"))))) In Lisp Programming, it prefer to indent radically. Therefore, we introduce the "thread macro". ; thread macro (function) (define (~> init . procs) (foldl (lambda (proc arg) (proc arg)) init procs)) (~> (star-polygon 20 20 3 "solid" "navy") (lambda (image) (overlay/align/offset "right" "bottom" (circle 30 "solid" "cornflowerblue") -10 -10 image)) (lambda (image) (overlay/align/offset "right" "top" (circle 30 "solid" "orchid") 0 10 image)) (lambda (image) (overlay/align/offset "left" "bottom" (circle 30 "solid" "khaki") 10 0 image)) (lambda (image) (overlay/align/offset "left" "top" (circle 30 "solid" "green yellow") 0 0 image))) For more simple discription, we use curry instead of lambda. (~> (star-polygon 20 20 3 "solid" "navy") (curry overlay/align/offset "right" "bottom" (circle 30 "solid" "cornflowerblue") -10 -10) (curry overlay/align/offset "right" "top" (circle 30 "solid" "orchid") 0 10) (curry overlay/align/offset "left" "bottom" (circle 30 "solid" "khaki") 10 0) (curry overlay/align/offset "left" "top" (circle 30 "solid" "green yellow") 0 0)) Thanks, Haruo -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.