
-----------------------------------
JR
Mon Apr 19, 2004 4:12 pm

help with palindrome question
-----------------------------------

function palindrome (s : string) : boolean
    if s (1) = s (*) then
        palindrome (s (2 .. * -1))
    end if
end palindrome
var s : string
put "Enter a word"
get s
if palindrome (s) = true then
    put s, "is a palindrome"
else
    put s, "is not a palindrome"
end if


this is the code, i need to make the program find the palindrome using recustion. I need help fixin the prog, some strange errors.

-----------------------------------
AsianSensation
Mon Apr 19, 2004 4:18 pm


-----------------------------------
well, right now you are calling a function like a procedure, you can't do that.

Another error, is that when you are passing the string as a parameter, if the string you pass is 1 character long, passing s (2 .. * - 1) will give you error.

that's about it, from what I see

-----------------------------------
EDEN-E
Mon Apr 19, 2004 4:41 pm


-----------------------------------
function palindrome (s : string, i : int) : boolean
    if length(s) = i then result true end if

    if s(i) = s(length(s)-i+1) then
        if palindrome (s, i + 1) then
            result true 
        end if
    end if
     
    result false
end palindrome 

var s : string 
put "Enter a word" 
get s 

if palindrome (s, 1) = true then 
    put s, " is a palindrome" 
else 
    put s, " is not a palindrome" 
end if 

hmm... when you use function, you have to return the result.

-----------------------------------
Tony
Mon Apr 19, 2004 6:05 pm


-----------------------------------
if a function returns boolean, you don't need to use comparison operator in if statement  :? 

function example():boolean
return true
end example

if example then
put "since function returned true, the overall if statement condition is also true"
end if

