Loops 长生不老药中的条件循环

Loops 长生不老药中的条件循环,loops,dictionary,foreach,elixir,phoenix,Loops,Dictionary,Foreach,Elixir,Phoenix,我已经开始研究长生不老药,但我正在努力从面向对象的功能范式转变 因此,我正在做的练习要求我返回正确的字符串格式,将DNA转换为RNA 例如:RnaTranscription.to_rna('ACTG')应返回'UGAC' 这就是我目前所拥有的,但我不知道如何继续。 我应该如何选取每个元素并替换它们? 我考虑过使用String.replace(dna,“A”,“U”)来替换每一个,但它不是干的 defmodule RnaTranscription do def to_rna(dna) do

我已经开始研究长生不老药,但我正在努力从面向对象的功能范式转变

因此,我正在做的练习要求我返回正确的字符串格式,将DNA转换为RNA

例如:
RnaTranscription.to_rna('ACTG')
应返回
'UGAC'

这就是我目前所拥有的,但我不知道如何继续。 我应该如何选取每个元素并替换它们? 我考虑过使用String.replace(dna,“A”,“U”)来替换每一个,但它不是干的

defmodule RnaTranscription do
  def to_rna(dna) do
    map = %{"A" => "U", "C" => "G", "T" => "A", "G" => "C"}
    dna
    |> String.split("")
    |> Enum.map(dna, substitute(dna, x))
  end

  def substitute(x), do: x -> [ map[x] | substitute(tails) ]

end
首先,我们应该区分表示字符串的双引号和表示字符列表的单引号。后者实际上是一个列表,而不是字符串

iex | 1>是列表('ABCD')
#⇒真的

这个exercism.io示例已经对您有所帮助,因为它要求翻译Charlist。也就是说,一个人可能会在输入(或理解)上坚持下去

map=%{'A'=>'U','C'=>'G','T'=>'A','G'=>'C'}
枚举映射('ACTG',fn c->map[[c]]end)
#⇒ ['U','G','A','C']
对于c?U,c=>G,T=>A,G=>c}
首先,对于c,我们应该区分表示字符串的双引号和表示字符列表的单引号。后者实际上是一个列表,而不是字符串

iex | 1>是列表('ABCD')
#⇒真的

这个exercism.io示例已经对您有所帮助,因为它要求翻译Charlist。也就是说,一个人可能会在输入(或理解)上坚持下去

map=%{'A'=>'U','C'=>'G','T'=>'A','G'=>'C'}
枚举映射('ACTG',fn c->map[[c]]end)
#⇒ ['U','G','A','C']
对于c?U,c=>G,T=>A,G=>c}

对于c
'ACTG'
首先是一个列表,而不是二进制aka字符串。
'ACTG'
首先是一个列表,而不是二进制aka字符串。嘿,谢谢你的提示!我现在明白了!嘿,谢谢你的提示!我现在明白了!