Working on blog posts
[riddle-generator.git] / riddle_solver.md
index a9e3064dd36242c65fd1b04a11d203e3143ba3d9..54c060b24021ea2bf581ac8a661829f28df409db 100644 (file)
@@ -6,7 +6,7 @@ jupyter:
       extension: .md
       format_name: markdown
       format_version: '1.3'
-      jupytext_version: 1.14.5
+      jupytext_version: 1.15.0
   kernelspec:
     display_name: Python 3 (ipykernel)
     language: python
@@ -37,12 +37,13 @@ def parse_line(tokens: List[str]) -> Tuple[int, Tuple[RiddleClue, RiddleClue]]:
   position_word = [t for t in stripped_tokens if t in ordinals][0]
   pos = from_ordinal(position_word)
   
-  first_index, first_word = [(i, t) for i, t in enumerate(stripped_tokens)
+  indexed_words = [(i, t) for i, t in enumerate(stripped_tokens)
                             if t not in ordinals 
-                            if t not in negative_words][0]
-  second_index, second_word = [(i, t) for i, t in enumerate(stripped_tokens)
-                            if t not in ordinals 
-                            if t not in negative_words][1]
+                            if t not in negative_words]
+  
+  first_index, first_word = indexed_words[0]
+  second_index, second_word = indexed_words[1]
+  
   neg_indices = [i for i, t in enumerate(stripped_tokens) if t in negative_words]
   
   first_clue = None
@@ -107,10 +108,10 @@ sample_riddle
 
 ```python
 def parse_riddle(riddle_text: str) -> Riddle:
-  riddle_lines =  {i: elem 
-                  for i, elem in 
-                   [parse_line(tokenise(l)) for l in riddle_text.split('\n')]}
-  return collapse_riddle_clues(riddle_lines)
+  return {i: elem 
+          for i, elem in 
+            [parse_line(tokenise(l)) 
+             for l in riddle_text.split('\n')]}
 ```
 
 ```python
@@ -120,7 +121,8 @@ solve_riddle(sample_riddle)
 ```python
 def parse_and_solve_riddle(riddle_text: str) -> List[str]:
   riddle = parse_riddle(riddle_text)
-  return solve_riddle(riddle)
+  elems = collapse_riddle_clues(riddle)
+  return solve_riddle(elems)
 ```
 
 ```python