recursive method not reaching base case

P

possibilitybox

i was working on implementing the original supermemo algorithm (see
http://www.supermemo.com/english/ol/sm2.htm for a description of it) in
a class, and i'd just finished up the first draft. it works for
repetitions one and two, but on repetition three (you must manually
increment item.reps.) or higher it recurses until it reaches the limit.
can someone point out what i'm doing wrong here?

here's the code:
class item:
def __init__(self, key, value):
self.key = key
self.value = value
self.reps = 1
self.ef = 2.5
def interval(self):
if(self.reps==1):
return 2
if(self.reps==2):
return 6
return (self.interval() - 1) * self.ef
 
R

Robert Kern

possibilitybox said:
i was working on implementing the original supermemo algorithm (see
http://www.supermemo.com/english/ol/sm2.htm for a description of it) in
a class, and i'd just finished up the first draft. it works for
repetitions one and two, but on repetition three (you must manually
increment item.reps.) or higher it recurses until it reaches the limit.
can someone point out what i'm doing wrong here?

here's the code:
class item:
def __init__(self, key, value):
self.key = key
self.value = value
self.reps = 1
self.ef = 2.5
def interval(self):
if(self.reps==1):
return 2
if(self.reps==2):
return 6
return (self.interval() - 1) * self.ef

You're not changing self.reps at all, so interval() keeps getting called
over and over again with self.reps == 3.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
P

possibilitybox

so obvious! thank you for helping me there. i knew it was simple, i
just couldn't catch it.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,228
Messages
2,571,157
Members
47,785
Latest member
deepusaini

Latest Threads

Top