> 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/p/palindrome_pairs.md).

# Palindrome pairs

```ruby
func find_palindromes(arr, callback) {
    arr.len.variations(2, {|i,j|
        var w = (arr[i]+arr[j]).fc.gsub(/\W+/)
        callback(i, j) if (w == w.flip)
    })
}

var t = [
    "abcd","dcba","lls","s","sssll",
    "Mr. Owl ate","or a cat I saw?",
    " my metal worm","Was it a car ",
]

find_palindromes(t, {|i,j|
    say "(#{i}, #{j}) = (#{t[i].dump}, #{t[j].dump})"
})
```

## Output:

```
(0, 1) = ("abcd", "dcba")
(1, 0) = ("dcba", "abcd")
(2, 4) = ("lls", "sssll")
(3, 2) = ("s", "lls")
(5, 7) = ("Mr. Owl ate", " my metal worm")
(8, 6) = ("Was it a car ", "or a cat I saw?")
```
