dobutokO-poetry 0.8.1.0 → 0.9.0.0
raw patch · 4 files changed
+26/−7 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- ChangeLog.md +4/−0
- DobutokO/Poetry/Norms.hs +20/−4
- DobutokO/Poetry/StrictV.hs +1/−2
- dobutokO-poetry.cabal +1/−1
ChangeLog.md view
@@ -49,3 +49,7 @@ ## 0.8.1.0 -- 2020-07-31 * Eigth version revised A. Fixed issue with being not compiled fo GHC versions prior to 8.4* series. ++## 0.9.0.0 -- 2020-08-01++* Ninth version. Fixed issues with empty lists in the norms for some variants in DobutokO.Poetry.Norms module. Some documentation improvements.
DobutokO/Poetry/Norms.hs view
@@ -49,6 +49,7 @@ norm4 :: [Int] -> Int norm4 xs | null xs = 0+ | length xs == 1 = head xs | otherwise = maximum xs + sum xs + maximum (xs \\ [maximum xs]) {-# INLINE norm4 #-} @@ -56,6 +57,7 @@ norm5 :: [Int] -> Int norm5 xs | null xs = 0+ | length xs == 1 = head xs | minimum xs == 0 = norm5 . filter (/= 0) $ xs | otherwise = sum xs `quot` (minimum xs + minimum (xs \\ [minimum xs])) {-# INLINE norm5 #-} @@ -64,7 +66,12 @@ norm51 :: [Int] -> Int norm51 xs | null xs = 0- | compare (minimum xs) 1 /= GT = let ys = filter (\t -> compare t 1 == GT) xs in (3 * sum xs) `quot` (minimum ys + minimum (ys \\ [minimum ys]))+ | compare (minimum xs) 1 /= GT = let ys = filter (\t -> compare t 1 == GT) xs in + case length ys of+ 0 -> sum xs+ 1 -> (3 * sum xs) `quot` (minimum ys + maximum ys)+ _ -> (3 * sum xs) `quot` (minimum ys + minimum (ys \\ [minimum ys]))+ | length xs == 1 = (3 * sum xs) `quot` (minimum xs + maximum xs) | otherwise = (3 * sum xs) `quot` (minimum xs + minimum (xs \\ [minimum xs])) {-# INLINE norm51 #-} @@ -74,10 +81,19 @@ norm513 xs | null xs = 0 | compare (minimum xs) 1 /= GT = - let ys = filter (\t -> compare t 1 == GT) xs - zs = ys \\ [minimum ys] in (3 * sum xs) `quot` (minimum ys + minimum zs + minimum (zs \\ [minimum zs]))+ let ys = filter (\t -> compare t 1 == GT) xs in + case length ys of + 0 -> sum xs+ 1 -> (3 * sum xs) `quot` (minimum ys + maximum ys)+ 2 -> let zs = ys \\ [minimum ys] in (3 * sum xs) `quot` (minimum ys + 2 * minimum zs)+ _ -> let zs = ys \\ [minimum ys] in (3 * sum xs) `quot` (minimum ys + minimum zs + minimum (zs \\ [minimum zs])) | otherwise = - let zs = xs \\ [minimum xs] in (3 * sum xs) `quot` (minimum xs + minimum zs + minimum (zs \\ [minimum zs]))+ let zs = xs \\ [minimum xs] in + case length zs of + 0 -> sum xs+ 1 -> (3 * sum xs) `quot` (minimum zs + maximum zs)+ 2 -> let ts = zs \\ [minimum zs] in (3 * sum xs) `quot` (minimum zs + 2 * minimum ts)+ _ -> let ts = zs \\ [minimum zs] in (3 * sum xs) `quot` (minimum zs + minimum ts + minimum (ts \\ [minimum ts])) {-# INLINE norm513 #-} -- | The sixth norm for the list of non-negative 'Int'.
DobutokO/Poetry/StrictV.hs view
@@ -6,8 +6,7 @@ -- Maintainer : olexandr543@yahoo.com -- -- Helps to order the 7 or less Ukrainian words (or their concatenations) --- to obtain (to some extent) suitable for poetry or music text. The main --- module in the library that imports all other ones except Main.+-- to obtain (to some extent) suitable for poetry or music text. {-# LANGUAGE CPP, BangPatterns #-}
dobutokO-poetry.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: dobutokO-poetry-version: 0.8.1.0+version: 0.9.0.0 synopsis: Helps to order the 7 or less Ukrainian words to obtain somewhat suitable for poetry or music text description: Helps to order the 7 or less Ukrainian words (or their concatenations) to obtain somewhat suitable for poetry or music text. Can be also used as a research instrument with generalized functions.