> For the complete documentation index, see [llms.txt](https://trizen.gitbook.io/sidef-lang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://trizen.gitbook.io/sidef-lang/programming_tasks/c/currying.md).

# Currying

This can be done by using lazy methods:

```ruby
var adder = 1.method(:add)
say adder(3)                 #=> 4
```

Or by using a generic curry function:

```ruby
func curry(f, *args1) {
    func (*args2) {
        f(args1..., args2...)
    }
}
 
func add(a, b) {
    a + b
}
 
var adder = curry(add, 1)
say adder(3)                 #=>4
```
