mirror of
https://github.com/correl/elm.git
synced 2024-11-16 11:09:29 +00:00
29 lines
592 B
Text
29 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
|