P14 (*) -P15 (**)Duplicate the elements of a list,Duplicate the elements of a list a given number of

Scala列表复制
本文介绍Scala中复制列表元素的方法,包括duplicate和duplicateN函数的实现,通过flatMap操作简化代码。
scala> duplicate(List('a, 'b, 'c, 'c, 'd))

res0: List[Symbol] = List('a, 'a, 'b, 'b, 'c, 'c, 'c, 'c, 'd, 'd)

scala> duplicateN(3, List('a, 'b, 'c, 'c, 'd))
res0: List[Symbol] = List('a, 'a, 'a, 'b, 'b, 'b, 'c, 'c, 'c, 'c, 'c, 'c, 'd, 'd, 'd)

//14
def duplicate[A](ls:List[A]):List[A]={
  var list:List[A]=Nil
  ls.foreach(e=> for(i<-0 to 1){list=list:::List(e)} )
  list
}
//15
def duplicateN[A](N:Int,ls:List[A]):List[A]={
  var list:List[A]=Nil
  ls.foreach(e=> for(i<-0 to N-1){list=list:::List(e)} )
  list
}

def main(args: Array[String])= {
  println(duplicate(List('a,'b,'c,'c,'d)))
  println(duplicateN(4,List('a,'b,'c,'c,'d)))

参考答案

def duplicate[A](ls: List[A]): List[A] = ls flatMap { e => List(e, e) }
巧妙地使用flatmap的接受处理列表的函数并把结果连接起来 的作用。

def duplicateN[A](n: Int, ls: List[A]): List[A] =
    ls flatMap { List.make(n, _) }
make函数已经不支持了,没有找到直接替代的函数



以下是基于嘉立创平台设计变频器的关键步骤和注意事项,结合您提供的说明书内容进行整理: --- ### **1. 硬件设计要点** #### **核心模块选择** - **主控芯片**:选用STM32F103系列(带PWM和ADC)或GD32替代,需支持Modbus RTU协议(说明书P14-17)。 - **功率模块**:根据电压等级选择IPM模块(如600V/15A对应3.7KW机型,参考P19安装尺寸表)。 - **电源电路**: - 输入滤波:EMI滤波器(防干扰,参考P5.17逐波限流设置)。 - 开关电源:24V/12V输出(供控制电路,参考P18端子图+12V输出)。 #### **关键电路设计** - **模拟输入**: - AVI(0-10V)和ACI(4-20mA)输入电路(P2.00-P2.03),需配置RC滤波(P2.07滤波时间0.1-5s)。 - 跳线J5选择电压/电流输入(P18说明)。 - **继电器输出**:TA-TC端子(120VAC/5A)用于故障指示(P2.20功能选择)。 - **485通讯**: - 终端电阻跳线J8(默认断开,P18)。 - 隔离设计,波特率9600bps(P6.01)。 #### **PCB设计注意事项** - **强电隔离**:母线电压(P5.02欠压保护180V)与弱电分区布局。 - **散热**:根据机型功率预留散热器空间(P19尺寸表,如7.5KW需113x209mm)。 - **端子定义**:严格按P18配线图布局(如X1-X5多功能输入端子)。 --- ### **2. 软件设计要点** #### **功能实现** - **频率控制**: - 支持面板▲▼键、端子UP/DOWN(P0.03频率给定选择)。 - 多段速(P1.17-P1.23)和PID控制(P3组参数)。 - **保护逻辑**: - 过流/过压保护(P5.07电流限制180%,P5.04过压375V)。 - 故障自动复位(P4.08次数,P4.09间隔3s)。 #### **通讯协议** - **Modbus RTU**: - 地址2000H写入运行命令(0012H正转,P15)。 - 读取输出频率(地址2103H,数据
04-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值