Haskell少々Schemeサパーリな人間の質問です。
Schemeでcurry化って概念はあるのでしょうか?

たとえば、リストの先頭要素とそれ以降のリストの要素の大小を比較し、
小さい要素だけのリストを返す関数を、Schemeのfilter関数(非標準?)を
用いて実現したいわけです。
ちなみに、Haskellなら以下のようになります。

lessThan :: (Num a, Ord a) => a -> a -> Bool
lessThan a b
| a > b = True
| otherwise = False

lessList :: (Num a, Ord a) => [a] -> [a]
lessList ls = filter (lessThan (head ls)) ls

これをSchemeで書くとき、filter関数の(a -> Bool)部分をどう書けば
美しくまとめることができるのか、少々悩んでいます。
filter関数を使わなければ簡単なんですけど、どうせなら使いたい。