Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Scala理解错误

我正在做一些exercism.io练习。目前我正在研究的是Scala练习。下面是我的代码和我收到的错误:

作为参考,DNA是用一串字符串实例化的。这个DNA可以调用计数(计算所传递的单核苷酸的链数)和nucletideCounts,它计数该链中每个核苷酸的所有出现情况,并返回一个Map[Char,Int]

代码语言:javascript
运行
AI代码解释
复制
class DNA(strand:String) {

  def count(nucleotide:Char): Int = {
    strand.count(_ == nucleotide)
  }

  def nucleotideCounts = (
    for {
      n <- strand
      c <- count(n)
    } yield (n, c)
  ).toMap

}

我所收到的错误如下:

错误:(10,17)值映射不是Int c <- count(n) ^的成员 错误:(12,5)不能证明Char <:< (T,U)。).toMap ^ 错误:(12,5)方法toMap:(隐式ev:<:

我对Scala非常陌生,因此,对于这些错误发生的原因以及修复它们的建议,我们将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2015-06-10 22:35:59

根据Akos的方法,考虑给定链(String)的并行遍历,

代码语言:javascript
运行
AI代码解释
复制
strand.distinct.par.map( n => n -> count(n) )

在这里,我们使用distinct来收集唯一的项,并在map中构造每个map关联。

票数 1
EN

Stack Overflow用户

发布于 2015-06-10 09:07:23

管道解决方案如下所示:

代码语言:javascript
运行
AI代码解释
复制
def nucleotideCounts() = strand.groupBy(identity).mapValues(_.length)
票数 0
EN

Stack Overflow用户

发布于 2019-08-16 13:36:41

另一种方法是

Map() ++ {for (n <- strand; c = count(n)) yield n->c}

不知道为什么它与{.}.toMap()不同,但是它完成了任务!

另一种方法是

Map() ++ {for (n <- strand; c <- Seq(count(n))) yield n->c}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30762741

复制
相关文章
linux命令后台运行
1. command & : 后台运行,你关掉终端会停止运行 2. nohup command & : 后台运行,你关掉终端也会继续运行
RainMark
2019/09/10
9.8K0
在linux后台运行脚本的方法和命令
后台运行脚本 执行脚本test.sh:./test.sh 中断脚本test.sh:ctrl+c 在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z 执行ctrl+z后,test.sh在后台是暂停状态(stopped),使用命令:bg number让其在后台开始运行(“number”是使用jobs命令查到的 [ ]中的数字,不是pid) 直接在后台运行脚本test.sh:./test.sh & 查看当前shell环境中已启动的任务情况:jobs 将test.sh切换到前台运行:fg %number(”number”为使用jobs命令查看到的 [ ] 中的数字,不是pid) 中断后台运行的test.sh脚本:先fg %number切换到前台,再ctrl+c;或是直接kill %number 以上两种在后台运行test.sh的方法,当遇到退出当前shell终端时,后台运行的test.sh也就结束了。这是因为以上两种方法使得test.sh在后台运行时,运行test.sh进程的父进程是当前shell终端进程,关闭当前shell终端时,父进程退出,会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。所以要想退出当前shell终端时test.sh继续运行,则需要使用nohup忽略hangup信号。
大数据流动
2020/06/19
3.6K0
Linux||后台运行及查看状态命令
在使用Linux运行程序的时候,常常遇到需要耗费一定时间才能完成的文件,如果在前台运行,此时坐在电脑前的你只能被迫打开其他软件进行摸鱼。
小汪Waud
2023/02/16
7.7K0
Linux||后台运行及查看状态命令
如何在后台运行Linux命令
通常情况下,当你在终端运行一个命令,在你开始输入另外一个命令之前,你必须等待当前命令运行结束。这被称为在前台运行命令,或者前台进程。当一个进程在前台运行时,它占用了你的 shell,并且你可以通过输入设备和它进行交互。
雪梦科技
2020/05/11
8.1K0
如何在后台运行Linux命令
如何在后台运行Linux命令?
通常情况下,在 Linux 终端中运行命令时,我们必须等前一命令执行完成后,在输入并执行后一条命令,称之为在前台或前台进程中运行命令,进程在前台运行时,将占用您的外壳,并且您也可以使用输入设备与其终端进行交互。
杰哥的IT之旅
2020/06/18
3.8K0
如何使程序在Linux后台运行
这样一来,test程序就在后台运行了。但是,这样处理还不够,因为这样做虽然程序是在后台运行了,但log依然不停的输出到当前终端。因此,要让终端彻底的清静,还应将log重定向到指定的文件:
阿凡亮
2020/04/14
8.9K0
使程序在Linux下后台运行
我们计算的程序都是周期很长的,通常要几个小时甚至一个星期。我们用的环境是用putty远程连接到日本Linux服务器。所以使程序在后台跑有以下三个好处:
SingYi
2022/07/14
4.3K0
在 Linux or windows 上后台运行服务
  此时可以访问 http://ip:8000 验证服务是否成功启动了(详细操作见另一篇文章-Python 一行搭建文件服务器)
我是胖虎啊
2022/06/27
3.3K0
在 Linux or windows 上后台运行服务
DOS命令后台运行
在你批处理的相同目录下新建一个记事本,里面输入: set ws=wscript.createobject("wscript.shell") ws.run "win.bat /start",0 (其中win.bat为你自己的批处理名字,自己改) 然后把这个记事本保存为后缀名为.vbe的文件,到时候你只要运行这个vbe文件
gemron的空间
2019/11/04
2.2K0
Linux通过screen命令,使得应用后台运行
在Linux中,如果需要一个软件后台长期运行,那我们可以使用nohup bash -c “xxxxxx” & 这个命令。但是,这个命令有些局限性:我们无法继续交互式的和我们的应用进行交互。因此我们可以使用screen命令来实现这个功能。screen命令的功能,有点类似于Windows下的“第二桌面”。
灯珑LoGin
2023/10/18
5210
Linux通过screen命令,使得应用后台运行
Linux后台运行hexo
hexo是一个非常高效的博客,但由于其设计特点,目的是为了转换为静态页面,因此不必要一直在后台运行,但是我想随时随地写博客同步到github,使用hexo admin编辑器,这就需要hexo一直在后台运行,于是在网上找到了pm2托管的方式。
宋天伦
2020/07/15
6.8K0
Linux下使Shell 命令脱离终端在后台运行
你是否遇到过这样的情况:从终端软件登录远程的Linux主机,将一堆很大的文件压缩为一个.tar.gz文件,连续压缩了半个小时还没有完成,这时,突然你断网了,你登录不上远程Linux主机了,那么前面的半个小时就会前功尽弃,你非常气愤……
飞奔去旅行
2019/06/13
2.7K0
linux 后台运行方法总结
多种后台运行方法总结,nohup, disown, setsid, (...&), screen, tmux
PedroQin
2020/06/22
3.8K0
Linux 后台运行 Jar 包
在部署 Java 程序的时候,最简单的方式就打成 jar 并使用 java -jar xxxx.jar 运行,但是如果是一台 Linux 服务器,执行远程上去之后,如果断开链接会中断服务,经过测试,可以通过下面的命令执行:
zucchiniy
2019/10/30
8.4K0
nohup命令–linux后台运行程序并实时查看输出
前言 前台运行程序十分的不稳定,当xshell断掉之后,程序也就断掉了。然后同学向我推荐了nohup命令,于是我就非常愉快的使用起来啦~
kirin
2021/03/15
5.3K0
EasyNVR在官网运行测试时录像播放失败是什么原因?
TSINGSEE青犀视频开发的EasyNVR、EasyDSS、EasyGBS、EasyCVR都包含云端录像功能,同时对录制下来的文件都支持按照指定时间段进行下载,下载的都是MP4标准的视频文件。
EasyNVR
2021/12/09
8940
EasyNVR在官网运行测试时录像播放失败是什么原因?
在window的cmd窗口下运行linux命令
之前看很多视频老师都是用Linux命令操作命令框,感觉很方便,自己在cmd窗口试了一下,所有这些命令都提示不是内部或外部命令,后来发现了windows还有一个powershell命令行工具,用起来似乎比cmd强大一点点,但是依旧linux命令不行,在网上才发现这么一个神器安装包如下: 链接: http://pan.baidu.com/s/1c23XvFU 密码: rz2v 点击默认路径安装,安装好后复制该路径地址: C:\CygwinPortable\App\Cygwin\bin 到系统环境变量里设置一下,
蓓蕾心晴
2018/04/12
4.8K0
关于 Linux后台运行进程
最近在搭建kafka的过程中,发现启动相关服务后,终端界面无法再进行操作。每次都需要开启多个终端界面,实在是特别麻烦。于是就研究了下Linux后台启动程序的方法,并整理了如下的笔记。
用户8710643
2021/06/08
1.9K0
EasyNVR在官网运行测试时录像播放失败是什么原因?
TSINGSEE青犀视频开发的EasyNVR、EasyDSS、EasyGBS、EasyCVR都包含云端录像功能,同时对录制下来的文件都支持按照指定时间段进行下载,下载的都是MP4标准的视频文件。
TSINGSEE青犀视频
2021/12/03
8040
linux 如何后台运行程序?
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
云雀叫了一整天
2019/09/29
4.1K0

相似问题

Mule在linux命令的后台运行。

24

在linux环境中运行命令失败

17

在Linux上,remove命令"rm“是否在后台运行?

23

无法在后台从dockerfile运行linux命令?

28

在后台运行Linux命令,关闭SSH后继续运行

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文