# Talk:Bresenham's Line Algorithm

From RogueBasin

Here's the shorter variant of function **bla** in Haskell:

import Data.Tuple bla :: (Int, Int) -> (Int, Int) -> [(Int, Int)] bla (x0, y0) (x1, y1) = let (dx, dy) = (x1 - x0, y1 - y0) (q, p, sw) | abs dx > abs dy = (dx, dy, id) | otherwise = (dy, dx, swap) step b (x, y) = (x + signum q, y + signum p * b) walk w xy = xy : walk (tail w) (sw . step (head w) . sw $ xy) in walk (balancedWord (abs p) (abs q) 0) (x0, y0)