mirror of
https://github.com/correl/elm.git
synced 2024-11-16 03:00:08 +00:00
28 lines
592 B
Text
28 lines
592 B
Text
module RNATranscription (toRNA) where
|
|
|
|
import String
|
|
|
|
|
|
toRNA : String -> Result Char String
|
|
toRNA dna =
|
|
dna
|
|
|> String.toList
|
|
|> List.map toRNANucleotide
|
|
|> resultExtraCombine
|
|
|> Result.map (List.map String.fromChar)
|
|
|> Result.map (String.join "")
|
|
|
|
|
|
-- Copied from elm-result-extra
|
|
resultExtraCombine : List (Result x a) -> Result x (List a)
|
|
resultExtraCombine = List.foldr (Result.map2 (::)) (Ok [])
|
|
|
|
|
|
toRNANucleotide : Char -> Result Char Char
|
|
toRNANucleotide nuc =
|
|
case nuc of
|
|
'C' -> Ok 'G'
|
|
'G' -> Ok 'C'
|
|
'A' -> Ok 'U'
|
|
'T' -> Ok 'A'
|
|
_ -> Err nuc
|