File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change 1+ from .utils import *
2+
3+ class Sequence :
4+ """Class Sequence: the tool class for sequences.
5+ """
6+
7+ def __init__ (self , formula , initial_values = []):
8+ """__init__(self, formula, initial_values=[]) -> None
9+ Create a sequence object.
10+ int formula(int, function) -> the formula function ...
11+ """
12+ self .formula = formula
13+ if list_like (initial_values ):
14+ self .values = {k : v for (k , v ) in enumerate (initial_values )}
15+ elif isinstance (initial_values , dict ):
16+ self .values = initial_values
17+ else :
18+ raise Exception ("Initial_values must be either a list/tuple or a dict." )
19+
20+ def __get_one (self , i ):
21+ if i in self .values :
22+ return self .values [i ]
23+
24+ self .values [i ] = self .formula (i , self .__get_one )
25+ return self .values [i ]
26+
27+ def get (self , left_range , right_range = None ):
28+ if right_range is None :
29+ return self .__get_one (left_range )
30+
31+ return [self .__get_one (i ) for i in range (left_range , right_range + 1 )]
You can’t perform that action at this time.
0 commit comments