结合多种功能

2024-03-31

我正在尝试制作一个 DNA 转录程序,但我的做法遇到了麻烦,我确信有一种更简单的方法可以做到这一点,但这是我想到的第一件事,但事实并非如此按照我想要的方式工作。

dnaToRna :: [Char] -> [Char]
dnaToRna [] = []
dnaToRna xs = reverse(transc xs)
    where transc = (replaceA . replaceT . replaceC . replaceG)
replaceA = map(\c -> if c == 'A' then 'U' else c)
replaceT = map(\c -> if c == 'T' then 'A' else c)
replaceC = map(\c -> if c == 'C' then 'G' else c)
replaceG = map(\c -> if c == 'G' then 'C' else c)

这是输出:

*Main> let seq = "AAATGTTAGTACACTAAGG"
*Main> dnaToRna seq
"GGUUUGUGUUGUUUGUUUU"

我认为这是因为 transc 替换了 A,然后检查整个字符串并替换了 T,等等 有小费吗? 提前致谢!


你应该创建一个函数来处理所有的Char -> Char立即转换。

dnaToRna :: [Char] -> [Char]
dnaToRna = reverse . map transc
  where
    transc 'A' = 'U'
    transc 'T' = 'A'
    transc 'C' = 'G'
    transc 'G' = 'C'
    transc _   = error "Invalid DNA molecule"

为了使其更安全,您可以让它返回Maybe [Char]反而。这lookup http://hackage.haskell.org/package/base-4.10.0.0/docs/Prelude.html#v:lookup也可以使用函数来代替使用自定义映射函数。

dnaToRna :: [Char] -> Maybe [Char]
dnaToRna = mapM (`lookup` zip "ATCG" "UAGC") . reverse
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

结合多种功能 的相关文章

  • 为自定义镜头编写类别实例

    我一直在读这个article http www haskellforall com 2012 01 haskell for mainstream programmers 28 html用于理解镜头 我知道这不同于 爱德华 克内特 Edwar
  • Haskell 中的参数数量和无点 [重复]

    这个问题在这里已经有答案了 对于多重模式匹配 不同数量的参数是不可能的 即使是无点的 foo True b b 2 foo id 例如 不起作用 但 foo True 2 foo id 做 有时我们只能在函数的一部分使用 point fre
  • 如何使用 alex/haskell 执行 python 风格的缩进/缩进标记?

    我正在用 Haskell 为 Alex 中的一种小语言编写一个词法分析器 该语言被指定为具有 python 式的显着缩进 只要缩进级别发生变化 就会发出 INDENT 标记或 DEDENT 标记 在像 C 这样的传统命令式语言中 您将在词法
  • 当单态限制打开*时,如何解决歧义问题?

    因此 在学习 Haskell 时 我很快就遇到了可怕的单态限制 在 ghci 中 Prelude gt let f print show Prelude gt f 5
  • yesod——密码保护临时站点

    我正在尝试设置 yesod 网络服务器的临时实例 我想知道是否有一些简单的方法可以使整个站点受到密码保护 具体来说 我希望能够提示那些导航到我的网站的人提供凭据 经过身份验证后 它应该像典型站点一样运行 但如果他们无法验证自己的身份 他们就
  • Haskell 单例:我们可以通过 SNat 获得什么

    我正在尝试使用 Haskell 单例 在论文中使用单例进行依赖类型编程 http cs brynmawr edu rae papers 2012 singletons paper pdf并在他的博客文章中单例 v0 9 发布 https t
  • 如何在 blaze-html 中渲染 blaze-svg 标记

    我想将使用 blaze svg 生成的 svg 图直接包含在使用 blaze html 生成的 html 中 两者都基于 blaze markup 所以我希望它很容易 diagram1 Svg diagram1 try1 Html try1
  • 如何在 Haskell 中枚举递归数据类型?

    这篇博文 http lukepalmer wordpress com 2008 05 02 enumerating a context free language 对于如何使用 Omega monad 对角枚举任意语法有一个有趣的解释 他提
  • 如何在 TH 拼接中复制 'name 的行为

    考虑这个 Haskell 文件 LANGUAGE TemplateHaskell OPTIONS GHC fplugin Test Inspection Plugin module Text main where import Test I
  • Haskell 二进制解析

    我一直在尝试在 haskell 中实现一个协议解析器 而且我对这门语言还很陌生 特别是当涉及到 monad 时 我一直在使用binary 0 5 0 2 并描述了协议的标头和所有有效负载 我想要解析的消息如下所示 header payloa
  • Haskell 中的常量变量声明

    要声明常量变量 我可以在 Ruby 中执行以下操作 class COLOR RED 10 BLUE 20 GREEM 30 end COLOR RED回报10 COLOR BLUE回报20 等等 我如何在 Haskell 中实现这一点 我想
  • “反向”使用 Maybe Monad

    假设我有很多功能 f a gt Maybe a g a gt Maybe a h a gt Maybe a 我想按以下方式组合它们 如果 f 返回 Nothing 则计算 g 如果 g 返回 Nothing 则计算 h 如果其中任何一个计算
  • 计算两点之间的距离(Haskell)

    给定两个元组的输入 我希望能够使用以下公式计算两点之间的距离 距离 sqrt x1 x2 2 y1 y2 2 所以我希望函数调用和输出如下所示 gt distance 5 10 3 5 5 385 当我尝试运行下面的代码时 它告诉我输入 w
  • GHC 是否使用存在类型的动态调度?

    下面的代码是否使用了 C 或 Java 中所理解的动态调度 据我了解 在最后一行 编译器不可能在编译时知道要调用哪个 实现 但代码会编译并产生正确的结果 有人可以解释一下 这背后有什么样的实现 例如 vptr 吗 LANGUAGE Exis
  • Haskell 中的相互递归求值器

    Update 我已经添加一个答案 https stackoverflow com questions 3524485 mutually recursive evaluator in haskell 4504200 4504200这描述了我的
  • 如何组合过滤条件

    过滤器类函数接受一个条件 a gt Bool 并在过滤时应用它 当您有多个条件时 使用过滤器的最佳方法是什么 使用了应用函数 liftA2 而不是 liftM2 因为出于某种原因我不明白 liftM2 在纯代码中如何工作 liftM2 组合
  • 带有查询参数的渲染 url

    无法找到简单问题的解决方案 答案应该是显而易见的 如何在 hamlet 模板中使用查询参数渲染 url I e ItemsR 将生成http localhost 3000 items我如何生成类似的东西http localhost 3000
  • 我应该使用什么递归方案来重复有效的操作,直到其结果符合某些标准?

    也就是说 我要问的是一个循环 effectful Int gt IO Int effectful n do putStrLn Effect show n return n condition 3 final Int gt IO final
  • 有没有办法在 Emacs 中使用 Djinn 自动生成 Haskell 代码?

    标题几乎说明了一切 我正在寻找这样的东西 f Int gt Bool gt Int f body Djinn 可以使用定理证明来通过证明该类型存在来生成此类函数的代码 我想知道 是否有现有的方法可以从 Emacs 中获取此功能 因此 我不需
  • 如何使用 Haskell 提交 html 表单

    我知道如何使用http 管道 http hackage haskell org package http conduit 2 1 0包的 simplehttp 从 URL 检索页面 现在如果那样的话怎么办 网页有一个输入文本字段和一个提交按

随机推荐

  • 是否有一个项目可以使用 Eclipse 代码库为 Emacs、VIM 和其他编辑器提供高级语言支持?

    这里有很多关于 IDE 与编辑器以及哪个更适合现代软件开发的问题 在答案中 一个常见的观点是 Eclipse 有更好的语言支持 例如for Java http help eclipse org indigo index jsp topic
  • 如何在base.html中使用自定义模板标签

    是我的项目根目录 其中manage py居住 我有一个基本模板 templates base html 我有一个自定义模板标签 app templatetags mytags py from django import template r
  • 烦人的javascript时区调整问题

    我已经设置了一个 JSON 端点 它从服务器返回当前时间 例如 myservertime 2011 10 02T23 00 02 00 现在是 CET 夏季时间 现在 我还有一个 jQuery 代码可以很好地解析它 sysTime func
  • 在 Clojure 中实现中断

    如果条件匹配返回最后一个值 有没有办法在 Clojure 中跳出循环 大多数算法受益于在找到结果时返回结果并避免完成整个执行 假设我有一个由 100 个数字组成的向量 范围从 0 到 100 我想找到数字 10 一旦找到 10 我希望停止执
  • 如何为 vue 生产构建输出单个 build.js 文件

    我在用着vue cli 2 9 6 并使用创建了一个vue项目vue init webpack
  • firefox插件SDK不使用新音频播放音频

    我正在开发一个 Firefox 扩展 我希望它在事件发生时播放通知声音 然而 尽管遵循了从 Firefox 扩展的数据目录播放音频 https stackoverflow com questions 16449813 play audio
  • Picasso 目标 onBitmapLoaded 未在 for 循环中调用

    下面的代码片段用于将文件加载到位图中并将该文件保存在内部目录中 即 PNG 或 JPG 格式 final List
  • Java日历时间、分钟错误

    有人知道为什么 java util Caldendar 中的 MINUTE 方法返回错误的分钟吗 import java util Calendar public class Clock Instance fields private Ca
  • 使用 futures 和 Thread.sleep

    通过执行这个 scala 代码 我在控制台中没有任何输出 我真的不明白发生了什么 如果我删除Console println Console println OK gt 一切看起来都很好 如果我删除Thread sleep 2000 gt 一
  • 有没有好的、简单的用于进程间调用的 RPC 库? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使 EditText 的父级可点击?

    假设我有这个粉红色的盒子 它包括LinearLayout和它的孩子们 TextView作为字段名称和EditText EditText被故意禁用 我想要的是 用户可以在粉红色的方框上单击任何用户想要的位置 顺便说一句 请忽略任何您觉得奇怪的
  • 是否可以从具有跨源数据的元素中捕获?

    我在 webRTC 文档中找到了这个简单的脚本 我尝试运行它 但似乎我遗漏了一些东西 const leftVideo document getElementById leftVideo const rightVideo document g
  • JIT - 将 Spacetree 保存为图像

    我正在使用 JavaScript InfoVis Toolkit http thejit org 并尝试将输出的 Spacetree 保存到图像中 空间树被输出到画布上 这个问题实在是让我很沮丧 我努力了 在新窗口中打开画布 在新窗口中打开
  • Windows 上 Haskell 中的 Unicode 控制台 I/O

    在 Windows 下的 Haskell 中让控制台 I O 与 Unicode 字符一起工作似乎相当困难 这是一个悲惨的故事 初步的 在考虑在 Windows 下的控制台中执行 Unicode I O 之前 您需要确保您使用的控制台字体可
  • 打开htaccess密码保护页面没有提示

    我在网站上有一个目录 该目录通过 htaccess 进行密码保护 我希望能够通过我的应用程序打开此网页 而无需用户输入密码 而是以编程方式打开此网页 例如 有没有办法可以将登录信息嵌入到 URL 中 例如http www mypage co
  • 如何在textarea中使用keydown事件?

    我不太习惯使用 javascript 但我已经厌倦了在工作中手动重复尝试 当我在论坛中写作时 我需要一个快速的简短命令 例如 Ctrl Alt z 来将一些文本插入到文本区域对象中 我已经编写了一个在文本光标 insertAtCursor
  • 在 XCode 中向表视图 (UITableView) 添加单元格

    我是 X Code 新手 刚刚开始开发我的第一个应用程序 我正在使用故事板 在导航控制器场景中 我添加了一个带有两个单元的 MasterViewController 这导致了两个 DetailViewController Detail1 和
  • 什么时候会使用没有 Arc 的互斥体?

    Rust 中一个极其常见的模式是Arc
  • 在 UITableViewCell 中进入编辑模式时隐藏 UITableViewCells(类似于联系人应用程序)

    有谁知道如何在进入编辑模式时隐藏分组 UITableView 中的多个单元格 我希望当退出编辑模式时 行能够以动画效果隐藏 如联系人应用程序中所示 如您所知 在联系人编辑模式下 行数比切换回正常模式时要多 我想知道如何顺利 切换 请注意 我
  • 结合多种功能

    我正在尝试制作一个 DNA 转录程序 但我的做法遇到了麻烦 我确信有一种更简单的方法可以做到这一点 但这是我想到的第一件事 但事实并非如此按照我想要的方式工作 dnaToRna Char gt Char dnaToRna dnaToRna