チェスのナイトが盤面の端から端まで特定の手数で移動する経路をすべて求める。 typelevel-tensor と numeric-prelude も必要。 #!/usr/bin/env runhaskell {-# LANGUAGE NoImplicitPrelude, RecordWildCards #-} {-# OPTIONS -Wall #-} module Main where import Data.Maybe import Data.Tensor.TypeLevel import GTA.Data.JoinList import GTA.Core hiding (items) import NumericPrelude knightMoves :: [Vec2 Int] knightMoves = [Vec :~ x :~ y | x <- [-2..2], y<-[-2..