よかったので、私は矢印で楽しいことを考えました。私は、セクシーなHaskellクイックソートを矢印を使用する実装に直接変換しようとしました。しかし、正しく動作しません。矢印を使用したクイックソートの実装で何が問題になっていますか?
import Control.Arrow
qs :: Ord a => [a] -> [a]
qs = isEmpty >>> right (head &&& tail
>>> first ((qs.) . filter . (<)
&&& (\x -> (x:) . qs . filter (>=x)))
>>> first (uncurry (&&&))
>>> uncurry id
>>> uncurry (++))
>>> extract
where
isEmpty [] = Left []
isEmpty x = Right x
extract (Left x) = x
extract (Right x) = x
誰かが問題を見つけることができますか?
素晴らしい! 'app'について知ることは良いことです。ありがとう:) – haskelline