{"size": 936, "ext": "scrbl", "max_stars_repo_path": "define-curry/define-curry.scrbl", "max_stars_repo_name": "bennn/syntax-parse-example", "max_stars_repo_stars_event_min_datetime": "2017-05-18T22:15:56.000Z", "max_stars_repo_stars_event_max_datetime": "2021-09-17T13:13:05.000Z", "max_issues_repo_path": "define-curry/define-curry.scrbl", "max_issues_repo_name": "bennn/syntax-parse-example", "max_issues_repo_issues_event_min_datetime": "2017-05-18T22:54:53.000Z", "max_issues_repo_issues_event_max_datetime": "2021-10-19T02:58:50.000Z", "max_forks_repo_path": "define-curry/define-curry.scrbl", "max_forks_repo_name": "bennn/syntax-parse-example", "max_forks_repo_forks_event_min_datetime": "2017-05-19T14:27:57.000Z", "max_forks_repo_forks_event_max_datetime": "2022-03-30T09:36:54.000Z"}
{"max_stars_count": 22, "max_issues_count": 20, "max_forks_count": 6, "avg_line_length": 30.1935483871, "max_line_length": 92, "alphanum_fraction": 0.6549145299}
#lang syntax-parse-example
@require[
  (for-label racket/base syntax/parse syntax-parse-example/define-curry/define-curry)]

@(define define-curry-eval
   (make-base-eval '(require racket/string syntax-parse-example/define-curry/define-curry)))

@title{@tt{define/curry}}
@stxbee2021["agj" 5]

@; =============================================================================

@defmodule[syntax-parse-example/define-curry/define-curry]{}

@defform[(define/curry (fn-id arg-id ...+) body ...+)]{
  Defines an automatically currying procedure.

  @examples[#:eval define-curry-eval
    (define/curry (insert-between mid left right)
      (string-join (list left mid right) ""))
    (define dash-between (insert-between "-"))
    (dash-between "left" "right")
  ]

  The macro uses @racket[syntax/loc] to give newly-defined functions
  names that point to their definition rather than to the macro body.

  @racketfile{define-curry.rkt}

}
