
A bit of a silly question, but why do people prefer an interface of (fn proc data)
and not (fn data proc)

@slack1 we’ve moved toward the latter, but the former is the historical tradition (ie map
)

I’m not sure if this influences Racket’s choice, but (map proc data)
is nicer with partial application, since you can do (define increment-all (map add1))

ah I see

I also didn’t know that things were auto-curried like that

I thought you had to curry map

They aren’t afaik. I was just saying that if things are autocurried, e.g. In haskell or hackett, then the order of map
/filter
/fold
’s arguments seems more natural

the current rule in racket “functions that operate on some abstract type foo?
use the prefix foo-
in their names and take the foo?
input as the first argument”

also it’s easier to extend to multiple arguments if the function comes first (as in map
)

but in general the rule is as @notjack says