#!/usr/bin/ruby # https://rosettacode.org/wiki/Palindrome_detection#Sidef func palindrome(s) { if (s.len <= 1) { true } elsif (s.char_at(0) != s.char_at(-1)) { false } else { __FUNC__(s.substr(1, -1)) } } var str = 'In girum imus nocte et consumimur igni'; palindrome(str.lc - /\s+/g) || die "error!"; palindrome('sidef') && die "error!"; palindrome('salĂ las') || die "error!"; say "** Test passed!";