From 7ab58bbbffaad56839fd3c63b4697c36a996711d Mon Sep 17 00:00:00 2001 From: Ryan R Date: Sat, 4 Mar 2017 20:37:35 -0600 Subject: [PATCH] better handling of generators (#75) --- seriously/SeriouslyCommands.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/seriously/SeriouslyCommands.py b/seriously/SeriouslyCommands.py index 41e1185..8df9d9e 100755 --- a/seriously/SeriouslyCommands.py +++ b/seriously/SeriouslyCommands.py @@ -721,7 +721,7 @@ def S_fn(srs): if isinstance(a, str): srs.push(''.join(sorted(a))) elif isinstance(a, collections.Iterable): - srs.push(sorted(a)) + srs.push(sorted([_ for _ in a])) else: srs.push(math.sin(a)) @@ -748,6 +748,7 @@ def sum_fn(srs): def index_fn(srs): b,a=srs.pop(),srs.pop() + b = [_ for _ in b] if a in b: srs.push(b.index(a)) else: @@ -983,7 +984,16 @@ def H_fn(srs): srs.push("Hello, World!") else: a,b = srs.pop(), srs.pop() - srs.push(a[:b]) + try: + res = a[:b] + except: + res = [] + for i,x in enumerate(a): + if i < b: + res.append(x) + else: + break + srs.push(res) def t_fn(srs): a,b = srs.pop(), srs.pop() @@ -991,7 +1001,10 @@ def t_fn(srs): c = srs.pop() srs.push(a.translate(str.maketrans(b, c))) else: - srs.push(a[b:]) + try: + srs.push(a[b:]) + except: + srs.push([_ for _ in a][b:]) def V_fn(srs): a,b = srs.pop(), srs.pop()