phonetic-languages-constraints-array-0.3.0.0: Constraints to filter the needed permutations
Copyright(c) OleksandrZhabenko 2020-2023
LicenseMIT
Maintaineroleksandr.zhabenko@yahoo.com
StabilityExperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010
Extensions
  • TypeSynonymInstances
  • FlexibleContexts
  • FlexibleInstances

Phladiprelio.ConstraintsEncoded

Description

Provides a way to encode the needed constraint with possibly less symbols. Uses arrays instead of vectors.

Synopsis

Data types

data EncodedContraints a b Source #

Constructors

E a 
P a b 
Q a a a a a 
T a a a a 
SA a a b 
SB a a b 
F a a a 
V a a 
W a a 
H a a a 
R a a a 

Functions to work with them

Read functions

readMaybeEC :: Int -> String -> Maybe EncodedCnstrs Source #

Inspired by the: https://hackage.haskell.org/package/base-4.14.0.0/docs/Data-Maybe.html Is provided here as a more general way to read the String into a EncodedCnstrs than more restricted but safer readMaybeECG. It is up to user to check whether the parameters are in the correct form, the function does not do the full checking. For phonetic-languages applications, it is better to use readMaybeECG function instead.

readMaybeECG :: Int -> String -> Maybe EncodedCnstrs Source #

A safer variant of the readMaybeEC more suitable for applications, e. g. for phonetic-languages series of packages.

Process-encoding functions

decodeConstraint1 :: (InsertLeft t (Array Int Int), Monoid (t (Array Int Int))) => EncodedCnstrs -> t (Array Int Int) -> t (Array Int Int) Source #

Must be applied to the correct array of permutation indeces. Otherwise, it gives runtime error (exception). All the integers inside the EncodedCnstrs must be in the range [0..n] where n corresponds to the maximum element in the permutation Array Int Int. Besides, n is (probably must be) not greater than 6.

decodeLConstraints :: (InsertLeft t (Array Int Int), Monoid (t (Array Int Int))) => [EncodedCnstrs] -> t (Array Int Int) -> t (Array Int Int) Source #

Must be applied to the correct array of permutation indeces. Otherwise, it gives runtime error (exception). All the integers inside the EncodedCnstrs must be in the range [0..n] where n corresponds to the maximum element in the permutation Array Int Int. Besides, n is (probably must be) not greater than 6.

Modifiers and getters

getIEl :: EncodedCnstrs -> Int Source #

Works only with the correctly defined argument though it is not checked. Use with this caution.

setIEl :: Int -> EncodedCnstrs -> EncodedCnstrs Source #

Works only with the correctly defined arguments though it is not checked. Use with this caution.

Predicates