diff options
author | Yorhel <git@yorhel.nl> | 2019-12-30 09:49:13 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2019-12-30 09:49:13 +0100 |
commit | d79c982ee876502db2e1a12752667c6a198c2ddc (patch) | |
tree | ccd4a4e72e5b0d3dd412bed6aee58044e93893f0 /elm3/Lib/Util.elm | |
parent | e146ed7bda12d369532e485ca0c2e3d823811854 (diff) |
Actually, let's get rid of v3 now that it doesn't work anymore anyway
Diffstat (limited to 'elm3/Lib/Util.elm')
-rw-r--r-- | elm3/Lib/Util.elm | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/elm3/Lib/Util.elm b/elm3/Lib/Util.elm deleted file mode 100644 index f6b39188..00000000 --- a/elm3/Lib/Util.elm +++ /dev/null @@ -1,76 +0,0 @@ -module Lib.Util exposing (..) - -import Char -import Dict - --- Delete an element from a List -delidx : Int -> List a -> List a -delidx n l = List.take n l ++ List.drop (n+1) l - - --- Modify an element in a List -modidx : Int -> (a -> a) -> List a -> List a -modidx n f = List.indexedMap (\i e -> if i == n then f e else e) - - -isJust : Maybe a -> Bool -isJust m = case m of - Just _ -> True - _ -> False - - --- Split by newline, trim whitespace and remove empty lines -splitLn : String -> List String -splitLn = String.lines >> List.map String.trim >> List.filter ((/=)"") - --- Returns true if the list contains duplicates -hasDuplicates : List comparable -> Bool -hasDuplicates l = - let - step e acc = - case acc of - Nothing -> Nothing - Just m -> if Dict.member e m then Nothing else Just (Dict.insert e True m) - in - case List.foldr step (Just Dict.empty) l of - Nothing -> True - Just _ -> False - - --- Similar to perl's ucfirst() (not terribly efficient) -toUpperFirst : String -> String -toUpperFirst s = String.toList s |> List.indexedMap (\i c -> if i == 0 then Char.toUpper c else c) |> String.fromList - - --- Haskell's 'lookup' - find an entry in an association list -lookup : a -> List (a,b) -> Maybe b -lookup n l = List.filter (\(a,_) -> a == n) l |> List.head |> Maybe.map Tuple.second - - -formatGtin : Int -> String -formatGtin n = if n == 0 then "" else String.fromInt n |> String.padLeft 12 '0' - - --- Based on VNDBUtil::gtintype() -validateGtin : String -> Maybe Int -validateGtin = - let check = String.fromInt - >> String.reverse - >> String.toList - >> List.indexedMap (\i c -> (Char.toCode c - Char.toCode '0') * if modBy 2 i == 0 then 1 else 3) - >> List.sum - inval n = - n < 1000000000 - || (n >= 200000000000 && n < 600000000000) - || (n >= 2000000000000 && n < 3000000000000) - || n >= 9770000000000 - || modBy 10 (check n) /= 0 - in String.filter Char.isDigit >> String.toInt >> Maybe.andThen (\n -> if inval n then Nothing else Just n) - - -spoilLevels : List (String, String) -spoilLevels = - [ ("0", "No spoiler") - , ("1", "Minor spoiler") - , ("2", "Major spoiler") - ] |