Move single-use functions into "where" clause
This commit is contained in:
		
							parent
							
								
									0bf364ec12
								
							
						
					
					
						commit
						6c1627c481
					
				
					 1 changed files with 11 additions and 12 deletions
				
			
		|  | @ -98,20 +98,19 @@ rotate' b@(Block s o@(xo,yo) cs) | ||||||
|   | s == O = b -- O doesn't need rotation |   | s == O = b -- O doesn't need rotation | ||||||
|   | s == I && (xo,yo+1) `elem` cs = rotateWith clockwise b -- I only has two orientations |   | s == I && (xo,yo+1) `elem` cs = rotateWith clockwise b -- I only has two orientations | ||||||
|   | otherwise = rotateWith counterclockwise b |   | otherwise = rotateWith counterclockwise b | ||||||
|  |   where | ||||||
|  |     rotateWith :: (Coord -> Coord -> Coord) -> Block -> Block | ||||||
|  |     rotateWith dir b = b & extra %~ fmap (dir (b ^. origin)) | ||||||
| 
 | 
 | ||||||
| rotateWith :: (Coord -> Coord -> Coord) -> Block -> Block |     clockwise :: Coord -- ^ origin | ||||||
| rotateWith dir b = let o = b ^. origin |               -> Coord -- ^ point to rotate around origin | ||||||
|                     in b & extra %~ fmap (dir o) |               -> Coord | ||||||
|  |     clockwise (xo, yo) (x, y) = (xo + y - yo, xo + y - x) | ||||||
| 
 | 
 | ||||||
| clockwise :: Coord -- ^ origin |     counterclockwise :: Coord -- ^ origin | ||||||
|           -> Coord -- ^ point to rotate around origin |                      -> Coord -- ^ point to rotate around origin | ||||||
|           -> Coord |                      -> Coord | ||||||
| clockwise (xo, yo) (x, y) = (xo + y - yo, xo + y - x) |     counterclockwise (xo, yo) (x, y) = (xo + yo - y, x + yo - xo) | ||||||
| 
 |  | ||||||
| counterclockwise :: Coord -- ^ origin |  | ||||||
|                  -> Coord -- ^ point to rotate around origin |  | ||||||
|                  -> Coord |  | ||||||
| counterclockwise (xo, yo) (x, y) = (xo + yo - y, x + yo - xo) |  | ||||||
| 
 | 
 | ||||||
| -- | Get coordinates of all block cells | -- | Get coordinates of all block cells | ||||||
| occupiedCells :: Block -> [Coord] | occupiedCells :: Block -> [Coord] | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Sam Tay
						Sam Tay