首页 > 其他分享 >Erlang 学习之第四天 . 列表,文件,原子,映射,元组,记录

Erlang 学习之第四天 . 列表,文件,原子,映射,元组,记录

时间:2024-02-05 12:12:41浏览次数:27  
标签:file 映射 format 列表 io Erlang example 元组

Erlang 列表

列表属于数据类型里面的集合,  列表是用于存储数据项集合的结构。在Erlang中,列表是通过将值括在方括号 [ ]中来创建的。
实例:  

start() -> 
   Lst1 = [1,2,3], 
   io:fwrite("~w~n",[Lst1]).    输出结果是 : [1 2 3]

以下是列表的方法说明:

all:  语法:  all(Pred,lst)    如果Pred(Elem)对List中的所有元素Elem返回true,则返回true,否则返回false。

  • Pred −将应用于字符串的谓词函数。

  • Lst - 值列表
start() -> 
   Lst1 = [1,2,3], 
   Predicate = fun(E) -> E rem 2 == 0 end, 
   Status = all(Predicate, Lst1), 
   io:fwrite("~w~n",[Status]).

any 语法: any(Pred,lst)    如果 Pred (Elem)对 List 中至少一个元素 Elem 返回 true,则返回 true。

sort 语法:sort(lst)    对元素列表进行排序。Lst是需要排列的元素   返回元素的排列列表

Erlang 文件

使用I / O时,Erlang提供了许多方法。 它具有更简单的类,可为文件提供以下功能-

  • 读取文件

    • 读取文件   
      • {ok, Data} = file:read_file("example.txt"),
        io:format("File content: ~s~n", [Data]).

  • 写入文件

    • 写入文件
      • ok = file:write_file("example.txt", "Hello, world!\n"),
        io:format("File written successfully.~n").

  • 查看文件是文件还是目录

      • 检查文件类型

        case filelib:is_file("example.txt") of
          true -> io:format("It's a file.~n");
          false -> io:format("It's not a file.~n")
        end.

Erlang 原子

在Erlang中,原子是不可变的符号(标识符),通常用于表示常量、命名函数、模块、键和其他数据结构中的键。

原子以小写字母开头,可以包含字母、数字、下划线和 '@'、'#'、'$' 等特殊字符。

1, 将原子用作变量名: Atom = hello. % 将原子 hello 赋给变量 Atom

2, 将原子用作函数名:  

    say_hello() -> io:format("Hello, world!~n").

    invoke_function() ->
      say_hello(). % 调用函数 say_hello

3, 将原子用作模块名: 

-module(example_module).
-export([example_function/0]).

    example_function() ->
      io:format("This is an example function.~n").

Erlang 映射

映射是具有可变数量的键-值关联的复合数据类型。映射中的每个键值关联都称为关联对。该对中的键和值部分称为元素。关联对的数量被称为映射的大小。

实例 :   K - value 数据类型

-module(helloworld). 
-export([start/0]). 
start() ->     M1 = #{name=>john,age=>25},     io:fwrite("~w",[map_size(M1)]).

Erlang 元祖

 

Erlang 记录

标签:file,映射,format,列表,io,Erlang,example,元组
From: https://www.cnblogs.com/dw166/p/18007691

相关文章

  • Erlang 学习之第三天 . 函数,模块,递归,数字,字符串
    Erlang函数Erlang是一种众所周知的函数式编程语言,因此您将看到许多关于函数如何在Erlang中工作的重点。本章介绍如何使用Erlang中的函数完成所有操作。直接上实例:定义函数add(X,Y) ->    Z = X+Y,    io:fwrite("~w~n",[Z]). start() ->    add(5,6).......
  • 虚拟化中的虚拟地址与物理地址的映射——EPT机制
    虚拟化中的虚拟地址与物理地址的映射——EPT机制​ 当secondaryprocessor-basedVM-executioncontrol字段“enableEPT”为1时,启用EPT(ExtendedPageTable,扩展页表)机制​ 开启EPT机制后VMM需要建立EPT页表结构,通过在EPTP(ExtendePageTablePointer)中......
  • 在K8S中,Pod网络访问与Docker容器端口映射有何不同?
    在Kubernetes和Docker原生端口映射之间,主要区别在于:1.Docker原生端口映射:Docker容器在启动时可以通过-p参数指定宿主机端口到容器内部端口的映射,例如:dockerrun-p8080:80nginx,这意味着外部通过宿主机的8080端口可以访问到容器内运行的nginx服务的80端口。Docker使用NAT技......
  • erlang学习笔记一
    Elang是一种函数式编程语言,具有一些独有的数据类型和数据结构.以下是Erlang中的常见数据类型和数据结构.1.Atom(原子):Atom是一个不可变的符号常量,用于表示标识符和常量.Atom以小写字符开头,可以包含字母,数字,下划线和@符号.例如:ok,hello,true。2.NUmber(数字):数字可以是......
  • Flink之状态编程 值状态(ValueState)列表状态(ListState)映射状态(MapState)归约状态(Reducin
    Flink之状态编程值状态(ValueState)列表状态(ListState)映射状态(MapState)归约状态(ReducingState)聚合状态(AggregatingState)广播状态(BroadcastState)Flink之状态编程一、按键分区状态(KeyedState)1.1、值状态(ValueState)1.1.1、定义1.1.2、使用案例1.2、列表状态(ListState)1.2.1......
  • 元组
    索引取值name_tuple=('888','hjk','ik')print(f"name_tuple[2]:{name_tuple[2]}")name_tuple[2]:ik切片(顾头不顾尾)print(name_tuple[1:2:2])('hjk',)长度lenprint(f"len(name_tuple):{len(name_tuple)}")len......
  • 干货分享 | TSMaster 信号映射的配置方法
    TSMaster信号映射模块可以将数据库变量映射为系统变量,经过映射后的系统变量就等同于数据库中的变量,该系统变量的读写操作就等同于读写数据库变量。其在系统软件中的位置如下图所示:信号映射模块设计的目的,就是为了实现上层应用层逻辑和下层数据库变量的解耦合。如果上层应用层直接操......
  • 综合概念映射与图像识别方法提高学生科学探究课程成绩
    (Anintegratedconceptmappingandimagerecognitionapproachto improvingstudents'scientificinquirycourseperformance) DOI:10.1111/bjet.13177一、摘要研究目的:学者和研究者普遍认为,科学探究是培养学生应用知识和高级思维能力的重要活动。科学探究的过程可以......
  • 无涯教程-Swift - 元组(Tuples)
    Swift4还引入了Tuples元组类型,该类型用于将多个值组合在单个复合值中,元组中的值可以是任何类型,并且不必是同一类型。如,("LearnFK",123)是一个具有两个值的元组,一个值是字符串Type,另一个是整数类型。这是元组声明的语法-varTupleName=(Value1,value2,…anynumberofval......
  • python中利用变量解压列表、元组、字符串、字典、文件对象、迭代器和生成器等序列
    一、如果知道序列中元素的个数,可以直接进行变量赋值。coords=(102,40)lon,lat=coordsprint(lon)print(lat)text="news"a,b,c,d=textprint(a)print(b)print(c)print(d)二、如果不知道序列中元素的个数,可以通过*变量名来代表多个元素的变量,无论序列是什......