首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个函数,接受一个数字和一个列表,并输出一个列表,其中包含该数字在Erlang中的所有位置

在Erlang中,可以使用以下函数来实现接受一个数字和一个列表,并输出一个列表,其中包含该数字在Erlang中的所有位置:

代码语言:erlang
复制
-module(positions).
-export([find_positions/2]).

find_positions(_, []) -> [];
find_positions(Num, List) -> find_positions(Num, List, 1, []).

find_positions(_, [], _, Acc) -> lists:reverse(Acc);
find_positions(Num, [Num|T], Index, Acc) -> find_positions(Num, T, Index+1, [Index|Acc]);
find_positions(Num, [_|T], Index, Acc) -> find_positions(Num, T, Index+1, Acc).

函数find_positions/2接受两个参数,一个数字Num和一个列表List。它会遍历列表中的每个元素,如果元素与数字相等,则将当前的索引位置添加到一个累积列表Acc中。最后,函数返回包含数字在列表中所有位置的列表。

以下是对函数的解释:

  • 第一个模式find_positions(_, []) -> []是递归终止条件,当列表为空时,返回一个空列表。
  • 第二个模式find_positions(Num, List) -> find_positions(Num, List, 1, [])是函数的入口点,它将初始索引设置为1,并将一个空列表作为累积列表传递给辅助函数find_positions/4
  • 第三个模式find_positions(_, [], _, Acc) -> lists:reverse(Acc)是递归终止条件,当列表遍历完毕时,返回累积列表的反转结果。
  • 第四个模式find_positions(Num, [Num|T], Index, Acc) -> find_positions(Num, T, Index+1, [Index|Acc])是当当前元素与数字相等时的情况,将当前索引添加到累积列表中,并递归调用find_positions/4处理剩余的列表。
  • 第五个模式find_positions(Num, [_|T], Index, Acc) -> find_positions(Num, T, Index+1, Acc)是当当前元素与数字不相等时的情况,直接递归调用find_positions/4处理剩余的列表。

这个函数可以通过以下方式调用:

代码语言:erlang
复制
positions:find_positions(2, [1, 2, 3, 2, 4, 2]).

该调用将返回一个列表[2, 4, 6],其中包含数字2在列表中的所有位置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python实现将range()函数生成数字存储一个列表

说明 同学代码遇到一个数学公式牵扯到将生成指定数字存储一个列表,那个熊孩子忽然懵逼不会啦,,,给了博主一个表现机会,,,哈哈哈好嘛,虽然很简单但还是记录一下吧,,,嘿嘿 一 代码 # coding...""" 01:range()函数调查 02:通过help()函数调查range()函数功能 03:Python转义字符 04:使用start、step、stop方式尝试初始化list、tuple、...0到4,包括04但不包括5....2, 3, 4, 5, 6, 7, 8, 9, 'a'} tempSet.add('a') print("set.add " + str(tempSet)) 以上这篇python实现将range()函数生成数字存储一个列表中就是小编分享给大家全部内容了...,希望能给大家一个参考。

4.3K20

Python list列表一个数字乘于2两种多功能函数代码设计

Python list列表一个数字乘于2或一个数字要让Pythonlist列表一个数字乘于2,可以有两种方法,一是使用列表推导式来完成,另一种是使用map()函数来完成。...列表推导式法为了让列表推导式代码能够重复利用,而且能够根据要乘数字不同而得到不同结果,下面的实例代码将被封装为一个函数,如下:def listEleDouble(listObj, n):...(list1, 2)print(newList)map()函数法使用map()函数法来为list列表一个数字乘于2,可以先定义一个函数,以作为参数传递给map()函数,顺便介绍一下,map()函数可以将列表或其它可迭代...Python对象逐个元素作为参数传递给map()函数参数,具体可参考如下代码:def listX2(ele): return ele*2list1 = [0,1,2,3,4,5,6]newList...= list(map(listX2, list1))print(newList)来源:Python list列表一个数字乘于2怎么乘,两种方法免责声明:内容仅供参考,不保证正确性!

23720

Scala入门必刷100道练习题(附答案)

定义一个名为method9方法,有三个参数,前两个为数字类型,最后一个参数为f1函数(该函数类型参数接受两个数字类型参数,返回值也是数字类型),method9方法返回值为数字类型。...定义一个函数f1两个参数分别为x,y都为数字类型,执行返回结果是两个参数 30....列表一个元素 56、list1从指定位置 0 开始查找元素d第一次出现位置 57、list1返回所有元素,除了最后一个 58、检测列表list1是否为空 59、返回list1列表最后一个元素...b数组后面追加一个数组Array(70) 97.使用for循环遍历b数组内容输出 98.使用for循环遍历b数组索引下标,打印元素 99.scala数组常用方法有哪些?...包含以下几个元素(130,120,310,140),请计算数组最小值 103.定义一个数组,包含以下几个元素(130,120,310,140),请计算数组 104.定义一个数组,包含以下几个元素

2.6K10

函数

需要在程序多次执行同一项任务时,无需反复编写完成任务代码,而只需调用执行任务函数,让Python运行其中代码。 一,定义函数 1.关键字def告诉Python要定义一个函数,这是函数定义。...也可使用关键字实参,其中每个实参都由变量名值组成;还可以使用列表字典。 1.位置实参 调用函数时,Python必须将函数调用每个实参都关联到函数定义一个形参。...三,返回值 函数并非总是直接显示输出,它可处理一些数据,返回一个或一组值。函数返回值被称为返回值。 函数,可使用return语句将值返回到调用函数代码行。...四,传递列表函数传递列表很有用,这种列表包含可能是名字、数字或更复杂对象(如字典)。将列表传递给函数后,函数就能直接访问其内容。 ? 输出: ?...2.结合使用位置实参任意数量实参 让函数接受不同类型实参,必须在函数定义中将接纳任意数量实参形参放最后。Python先匹配位置实参关键字实参,再将余下实参都收集到最后一个形参。 ?

83720

快速入门-Python基础知识

输出列表前三个元素,需要指定索引0~3,这将输出分别为0、12元素。...7.2 返回值 函数并非总是直接显示输出,相反,它可以处理一些数据,返回一个或一组值。函数返回 值被称为返回值。函数,可使用return语句将值返回到调用函数代码行。...例如,下面的函数接受姓名年龄,返回一个表示人字典: >>> def build_person(name,age): ......结合使用位置实参任意数量实参 如果要让函数接受不同类型实参,必须在函数定义中将接纳任意数量实参形参放在最后。Python 先匹配位置实参关键字实参,再将余下实参都收集到最后一个形参。...7.5 函数编写指南 应给函数指定描述性名称 函数名应只包含小写字母下划线 每个函数都应包含简要地阐述其功能注释,注释应紧跟在函数定义后面,采用文档字符串格式。

2.8K40

0基础小白想学Python不知道怎么入门从何学起?十分钟带你快速入门 Python(初学者必看,收藏必备!!!)

三、列表 列表由一系列按特定顺序排列元素组成。 Python,用方括号([])来表示列表,并用逗号来分隔其中元素。...与函数range()一样,Python在到达你指定第二个索引前面的元素后停止。要输出列表前三个元素,需要指定索引0~3,这将输出分别为0、12元素。...7.2 返回值 函数并非总是直接显示输出,相反,它可以处理一些数据,返回一个或一组值。函数返回 值被称为返回值。函数,可使用return语句将值返回到调用函数代码行。...结合使用位置实参任意数量实参 如果要让函数接受不同类型实参,必须在函数定义中将接纳任意数量实参形参放在最后。Python 先匹配位置实参关键字实参,再将余下实参都收集到最后一个形参。...7.5 函数编写指南 应给函数指定描述性名称 函数名应只包含小写字母下划线 每个函数都应包含简要地阐述其功能注释,注释应紧跟在函数定义后面,采用文档字符串格式。

3.1K10

十分钟快速入门 Python,看完即会,不用收藏!

输出列表前三个元素,需要指定索引0~3,这将输出分别为0、12元素。...7.2 返回值 函数并非总是直接显示输出,相反,它可以处理一些数据,返回一个或一组值。函数返回 值被称为返回值。函数,可使用return语句将值返回到调用函数代码行。...例如,下面的函数接受姓名年龄,返回一个表示人字典: >>> def build_person(name,age): ......结合使用位置实参任意数量实参 如果要让函数接受不同类型实参,必须在函数定义中将接纳任意数量实参形参放在最后。Python 先匹配位置实参关键字实参,再将余下实参都收集到最后一个形参。...7.5 函数编写指南 应给函数指定描述性名称 函数名应只包含小写字母下划线 每个函数都应包含简要地阐述其功能注释,注释应紧跟在函数定义后面,采用文档字符串格式。

2.9K30

LINC switch系列之架构分析与源码探索

关于Erlang Erlang是一种运行在虚拟机上函数式语言,其他运行在虚拟机语言类似,单纯性能上无法C这类语言相比,因为底层虚拟机就是用C实现。...1.入门Erlang shell,很多对运行系统更改都可以通过shell操作实现。 2.理解Erlang数据结构,比如元组,列表等。 3.理解rebar,一个Erlang应用打包工具。...系统负责对来自openflow configuration pointOF-Config消息进行分析,批准翻译成Erlang消息。输出消息将传至linc,用于对openflow交换机管理。...LINC backendErlang组件工作流程(蓝色数字): 1.Erlang进程管理OF port收到来自网络接口数据包。 2.数据被解包翻译为Erlang term。...app目录:目录是数个LINC Erlang应用,LINC与其他大多数Erlang项目一样均使用rebar打包。 docs目录:里面包含一系列文档,可供参考。

91960

文件和文件异常

方法readlines()从文件读取每一行,并将其存储一个列表。接下来,列表被存储到变量lineswith代码块外,我们依然可以使用这个变量。...5.使用文件内容 将文件读取到内存后,可以以任何方式使用这些数据了。 首先打开文件,并将其中所有行都存储一个列表。创建一个变量pi_string,用于存储圆周率值。...获得一个这样字符串:它包含精确到30位小数圆周率值。这个字符串长32字符,因为它还包含整数部分3小数点。 读取文本文件时,Python将其中所有文本都解读为字符串。...6.包含一百万位大型文件 有一个文本文件,其中包含精确到小数点后100万位而不是30位圆周率值,也可创建一个包含所有这些数字字符串。无需对程序做任何修改,只需将这个文件传递给它即可。...结果是一个包含字符串中所有单词列表,虽然有些单词可能包含标点。 ? 输出: ? 7.使用多个文件 ? 输出: ?

5.2K20

网络工程师学Python-9-函数

函数参数列表,用于接收函数调用时传递值;函数文档字符串(也称为 docstring)是可选,用于描述函数用途功能;函数体代码包含一系列语句,用于执行某些操作;return 语句用于从函数返回一个值...以下是一个简单函数示例,它接受两个参数返回它们:def add_numbers(x, y): """返回两个数字""" return x + y在上面的示例,add_numbers...(number)在上面的示例,print_numbers 函数使用 * 运算符来接受任意数量参数,使用 for 循环遍历所有参数打印它们。...第三行调用了 print_numbers 函数使用 * 运算符将一个列表 9, 10, 11 转换为多个位置参数,然后将它们传递给函数。另外,函数还可以接受带有默认值参数。...函数内部,变量将遮蔽全局变量 x,因此函数内部打印变量值将输出 5。函数外部打印 x 值将输出全局变量值 10,因为全局变量没有被改变。

23800

回顾Erlang简要

Erlang: 创建和销毁进程非常快 进程间发送消息非常快 进程在所有操作系统上都具有相同行为方式 可以拥有大量进程 进程间不共享内存,完全独立 唯一沟通方式是消息传递,每个进程都有一个邮箱与进程同步创建...动态代码载入是Erlang特性之一,总是调用最新模块最新函数,哪怕当代码模块里运行时重新编译了模块也是如此。...列表(list)形如[,,]可以存放任意数量事物。Head可以是任何事物,Tail通常仍然是个列表。只要用[…|T]构建一个列表,就应确保T是一个列表。同样使用模式匹配来提取列表元素。...Erlang没有字符串,字符串是个整数列表,”HelloCloud”是一个列表简写,io:format来指定打印输出。...OTP OTP包含了一组库实现方式,可以构建大规模、容错分布式应用程序,包含了许多强大工具,能够实现H248,SNMP等多种协议,核心概念是OTP行为,可以看作一个用回调函数作为参数应用程序框架

1.2K40

python 面试题-收集100+面试题笔试题

输出指定字符串A字符串B第一次出现位置,如果B包含A,则输出-1 从 0 开始计数 A = “hello” B = “hi how are you hello world, hello yoyo...1.12 查找字符串最后一次出现位置 输出指定字符串A字符串B中最后出现位置,如果B包含A,则输出-1 从 0 开始计数 A = “hello” B = “hi how are you hello...nums 一个目标值target ,请你数组找出为目标值那两个整数,返回他 们数组下标。...10, 17, 11] 1.找出ab中都包含元素 2.a或b包含所有元素 3.a包含而集合b包含元素 第5章 综合练习题(上机考试) 5.1 有1、2、3、4组成无重复数三位数(排列组合...’,’UYIIYU’ 总共有6个 5.22 找出一个列表所有出现连续数(栈) 找出一个列表所有出现连续数字,如列表a=[1,2,3,8,6,7,5,10,16,98,99,100,101]

6.5K20

Erlang 03 - Erlang缺陷

因此, 浮点数必须表示成装箱形式: 在这种形式下, 浮点数实际数据保存在进程堆空间内, 指向该位置指针连同类型标签一挤入一个字....他们跟浮点数大数一样, 保存在进程自身. 其他Erlang数据类型一样, 进程间传递消息时, 这类二进制串数据会被一复制....设置选项后, 编译器会专门针对代码二进制串输出一些颇有助益警告信息. 元组 元组是只读数据结构, 更新就意味着复制....列表 列表单元一个包含一个特殊类型标签一个指针, 其中标签表明这是一个列表单元, 指针则指向其余位于堆上数据....调用erlang:hibernate(Mode, Func, Args)即可令进程休眠. 休眠进程会抛弃调用栈, 忘却自身在程序的当前执行位置.

1.6K30

【Python入门第十四讲】函数(Function)篇

它将一些常见或重复完成任务放在一起创建一个函数,这样我们就可以执行函数调用以一遍又一遍地重用其中包含代码,而不是为不同输入一次又一次地编写相同代码。...函数体内部使用了循环来处理位置参数关键字参数,打印出相应值。使得函数更加灵活,可以接受不同数量类型参数,并且可以根据需要进行处理。...__doc__)示例:将 Docstring 添加到函数其中函数检查给定数字是否为偶数或奇数,输出相应信息:def evenOdd(x): """函数用于检查给定数字是偶数还是奇数"""...__doc__)在这个示例函数 evenOdd 接受一个参数 x,根据参数输出相应信息。函数文档字符串用中文描述了函数作用。最后,使用 print(evenOdd....# 输出:4print(square_value(-4)) # 输出:16在这个示例函数 square_value 接受一个参数 num,返回参数平方值。

21920

关于“Python”核心知识点整理大全7

()从2开始数,然后不断地加2,直到达到或超过终值(11),因此 输出如下: [2, 4, 6, 8, 10] 使用函数range()几乎能够创建任何需要数字集,例如,如何创建一个列表其中包含前...与函数range()一样,Python 在到达你指定第二个索引前面的元素后停止。要输出列表前三个元素,需要指定索引0~3, 这将输出分别为0、12元素。...(players[0:3]) 1处代码打印列表一个切片,其中包含三名队员。...例如,编写游戏时,你可以玩家退出游戏时将其最终得分 加入到一个列表。然后,为获取玩家三个最高得分,你可以将该列表按降序排列,再创建 一个包含前三个得分切片。...这让Python创建一个始于第一个元素,终止于最后一个元素切片,即复制整个列表。 例如,假设有一个列表其中包含你最喜欢四种食品,而你还想创建另一个列表,在其中 包含一位朋友喜欢所有食品。

9110
领券