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

在elm-lang的case表达式中,管道`|`运算符做了什么?

|`运算符用于匹配模式和执行相应的代码块。它的作用类似于switch语句中的case语句。

具体来说,管道|运算符将一个模式和一个代码块连接起来,用于匹配输入值并执行相应的代码。在case表达式中,可以有多个管道|运算符,每个管道对应一个模式和代码块。

当输入值与某个模式匹配时,对应的代码块将被执行。如果没有匹配的模式,会抛出一个错误。

管道|运算符的使用使得在elm-lang中编写复杂的模式匹配变得更加简洁和可读。

以下是一个示例:

代码语言:txt
复制
case value of
    0 ->
        "Zero"
    
    1 ->
        "One"
    
    n | n < 0 ->
        "Negative number"
    
    _ ->
        "Other"

在上面的例子中,管道|运算符用于匹配不同的模式,并执行相应的代码块。如果输入值为0,则返回"Zero";如果输入值为1,则返回"One";如果输入值小于0,则返回"Negative number";如果输入值不满足以上任何模式,则返回"Other"。

对于elm-lang的case表达式中的管道|运算符,腾讯云没有特定的产品或链接地址与之相关。

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

相关·内容

3分钟短文 | grep 入门用法,匹配多字符串,多正则模式

引言 grep 是一种功能强大命令行工具,可以一个或多个输入文件搜索与正则表达式匹配行,并将每条匹配行写入标准输出。 本文中,我们将向你展示如何使用GNU grep搜索多个字符串或模式。...要搜索多个模式,请使用 OR(或)运算符。 或运算符|(管道符)可以指定不同可能匹配项,这些匹配项可以是文字字符串或表达式集。在所有正则表达式运算符,此运算符优先级最低。...使用grep基本正则表达式搜索多个模式语法如下: grep 'pattern1\|pattern2' file... 始终将正则表达式单引号,以避免shell解释和扩展元字符。...使用基本正则表达式时,元字符将解释为文字字符。为了保留元字符特殊含义,必须使用反斜杠(\)将其转义。这就是为什么我们|用斜杠转义OR运算符原因。...搜索时,调用忽略大小写grep with-i选项(或--ignore-case): grep -i 'fatal\|error\|critical' /var/log/nginx/error.log

1.3K30

​elmlang:一种编码和可视化调试支持内置语言系统

更高层“艺术化编程手段”是一种出路,《bcxszy》part 2,我们归纳了从工程和艺术层面使编程高级化手段,比如提出更多语言,即语言DSL化脚本化(针对语言技法改进或增强也是一种DSL化,pme...而工具上,语言高级化和底层不变又形成了矛盾,因为debug时候我们从来都是通过某个编辑器和IDE,追踪底层执行frame,所有现在能看到语言编译或解释实现都是这个套路,而coding过程...下面结合elm-lang来一一说明,每条都对应elm一个特性和其对于传统过度设计修正性设计: 首先来看elm-lang是一种什么东西: elm-lang A delightful language...设计与jsintro特性 ----- 《发布terralang》《发布pypy》这些文章我们不断提到高级混合语言系统,和可裁剪语言系统如linux kernel般可裁剪思想,它们主要是从DSL化...uniform webiz client and ide app ecosystem:让编程和调试装配到浏览器 ----- 《编程实践选型:part编程最高境界是什么我们谈到WEB极大化和浏览器对

83940
  • JavaScript 未来:它还少些什么

    函数式编程 2.1 更多表达式 不幸是C风格语言表达式和语句之间做出了区分: 1// 条件表达式 2let str1 = someBool ?...,新 case 语句某些方面类似于 switch,不过它使用解构来挑选分支。...2.3 管道操作 管道操作目前有两个竞争提案 。本文,我们研究其中 智能管道(另一个提议被称为 F# Pipelines)。 管道操作基本思想如下。请考虑代码嵌套函数调用。...管道运算符能让我们更好地表达这种直觉: 1const y = x |> f |> g |> h; 换句话说,以下两个表达式是等价。...1f(123) 2123 |> f 另外,管道运算符支持部分应用程序(类似函数 .bind() 方法):以下两个表达式是等价

    53630

    Saleforce 基于 Kotlin 构建数据管道探索和实践

    为了解决 Java 在数据管道方面的这些缺点,我们选择了 Kotlin 作为后端开发替代方案。 1为什么是 Kotlin?...用于分离可变数据和不可变数据强大机制允许我们对并行数据处理进行更简单推理。 通用“when”运算符允许我们根据数据类型和值编写灵活简洁分支表达式。... Java 中使用 Kotlin 接口也几乎不存在摩擦,并且我们 Kotlin 实现 API 还被其他使用 Java 团队用上了。...使用 when 构造详尽模式匹配:从第 8 行开始,Kotlin when 表达式对枚举值和 case 类进行详尽模式匹配。...这就是为什么它是 2020 年最受欢迎编程语言之一。我们将继续扩大其采用范围,同时用它来构建新管道、并将旧管道也逐渐切换到 Kotlin 上。

    75110

    SHELL(bash)脚本编程二:语法

    管道两侧命令均在子shell(subshell)执行,这里需要注意:子shell对变量进行赋值时,父shell是不可见。...,所以当执行完毕时,父shell输出变量值为空 [root@centos7 ~]# 序列命令 序列命令(list)是指被控制操作符;,&,&&或||分隔一到多个管道命令,以;、&或<newline...和 test expr expr1 || expr2 #表示对两个表达式进行逻辑或操作,只能用于 [[ expr ]] 使用操作符==和!...w+' #if语句 # 此例并没有什么特殊意义,只为说明几点需要注意地方: # 1、if后面可以是任何能够判断返回值命令 # 2、直接执行复合命令((...))没有输出,要取得表达式值必须通过数学扩展...] 命令command子shell异步执行,就像被控制操作符&作用而放到了后台执行,同时建立起一个双向管道,连接该命令和当前shell。

    1.4K20

    计算机程序思维逻辑 (9) - 条件执行本质

    流程控制中最基本就是条件执行,也就是说,某些操作只能在某些条件满足情况下才执行,一些条件下执行某种操作,另外一些条件下执行另外某种操作。这与交通控制红灯停、绿灯行条件执行是类似的。...if If语法为: if(条件语句){ 代码块 } 或 if(条件语句) 代码; 它表达含义也非常简单,只条件语句为真的情况下,才执行后面的代码,为假就不做了。...表达式 1 : 表达式2 三元运算符会得到一个结果,判断条件为真的时候就返回表达式1值,否则就返回表达式2值。...从逻辑上讲,if/else, if/else if/else,三元运算符,switch都可以只用if代替,但使用不同语法表达更简洁,条件比较多时候,switch从性能上也更高(马上解释为什么)。...不行,没有这条指令,不管什么条件,括号代码都会执行。 不过,对应跳转指令也可能是: int a=10; 条件跳转: 如果a%2!

    1.2K100

    python接班者之coconut

    一、什么是coconut coconut是一个python基础上开发组件,它完美支持python3所有语法。并且扩展改善了一些新语法。...开始学习之旅啰 3.1 管道(|>): coconut支持管道,函数间数据传递: "hello world" |> print 这个类似于python语法print("hello world")...这样设计有什么好处呢?...这样多个函数进行数据传递,原生python不支持 3.2 括号作为lambda表达式, 可以简化循环分支代码,并用函数式编程() 任何运算符号使用()包住相当于lambad函数,比如说(*)相当于lambda...addpattern可以理解成为case match等条件控制语句做精简代码函数准备 3.5 函数不用冒号用问号= 如果函数定义是=,而不是:,这里就不用写return语句,最后一句执行值就是返回值

    1.2K30

    Shell脚本学习2

    原生bash不支持简单数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。 expr 是一款表达式计算工具,使用它能完成表达式求值操作。...$a + $b` echo "a + b : $val" 注意: 表达式运算符之间要有空格 乘号(*)前边必须加反斜杠\才能实现乘法运算 完整表达式要被 ` ` 包含 关系运算符 运算符 说明 -...index STRING CHARS #STRING查找字符CHARS首次出现位置,没有找到返回0 length STRING #字符串长度 数组 bash...支持一维数组(不支持多维数组),并且没有限定数组大小,数组元素下标由0开始编号 获取数组元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。...case ... esac 与其他语言中 switch ... case 语句类似,是一种多分枝选择结构。

    18020

    第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-156 表达式计算

    输入表达式两边加上括号 StringBuilder temp = new StringBuilder(); // 存放临时表达式,即每次存放都是任意一个括号表达式 while (true...+ 1, backBrackets)); // 将此括号表达式存入temp expression.delete(frontBrackets, backBrackets + 1); // 原始表达式中将括号连同其中表达式删除...* @param location * 操作符表达式位置 */ private static void calculation(StringBuilder src...操作符位置(此时操作符两边数已经从src删除,所以插入此位置相当于用结果代替子表达式,方便下一次运算) break; case '-': sum = x - y; src.deleteCharAt...print(eval(input())) 总结 没有什么不付出就能拿到结果,我们都是负重前行,最终结果与自身先天脑力有一定关系,但是还是有很大一部分看自己后天努力,其实从报名到比赛也就5个月左右

    20920

    轻松拿捏C语言——分支语句

    讲解if语句之前,我们先来了解一下逻辑表达式:if语句可以测试条件。 1.逻辑表达式 在这些语句中,许多是要判断条件真假来选择执行哪一条语句,因此我们需要知道C语言中0为假,非0为真。...注:C语⾔,⾮0表⽰真,0表⽰假 1.3.1 逻辑取反运算符 !...逻辑运算符还有⼀个特点,它总是先对左侧表达式求值,再对右边表达式求值。 如果左边表达式满足逻辑运算符条件,就不再对右边表达式求值,这种情况称为“短路”。...2.6条件表达式 C语言提供了一种特殊运算符,其允许表达式根据条件值来产生两个值一个。条件操作符也叫三目操作符,需要接受三个操作数,形式如下: exp1 ?...如果switch 后表达式值无法匹 配代码 case 语句时候,这时候要不就不做处理,要不就得 switch 语句中加入 default 子句。

    8510

    # C#学习-关系运算符-逻辑运算符-if-switch

    关系运算符 作用:描述前后表达式之间大小关系,关系运算符结果一定是一个bool类型 ? 逻辑运算符 作用:描述前后表达式之间逻辑关系,逻辑运算符结果一定是一个bool类型 ?...* 其中if语句属于分支结构语句* if语句第一种形式 if(条件表达式){ 语句1; } 当条件表达式为真,执行大阔号所有语句(语句1),否则,跳过大括号所有语句,继续执行大括号后面的语句...if语句第二种形式 if (条件表达式){ 语句1;} else{ 语句2; } 当条件表达式为真,执行if大阔号所有语句(语句1),否则,执行else大括号所有语句(语句2...,如果条件表达式1为假,条件表达式2为真,执行语句2,如果条件表达式1与条件表达式2都为假,执行语句3; 练习 1.从控制台输入两个整数,并输出两个数最大值。...case值n:{语句1;break;} default:{语句n+1;break;} } 执行过程: 根据表达式值,去大括号查找与该值相匹配分支。

    37320

    详解C语言中分支语句(下)

    C语言中,短路是什么? 我们在上面说过,逻辑运算符是从最左边表达式开始运算。...default:statement } 上面代码,根据表达式expression不同值,执行相应case语句分支。...可能有的读者就会问,那如果我就是不写break会发生什么? 下面我们就来探讨一下这个问题。 3.2 switchbreak 前面的代码,如果我们去掉case语句中break,会发生什么?...通过switch语句后面的整型表达式得出值,根据case后面的值进行匹配。我们这里就进入到了case 0,之后就打印了"余数为0",就在这时我们得到了我们想要结果。...3.3 switchdefault 使用switch语句时候,我们可能会遇到一种情况,比如switch后表达式值,没有一个case后面的值能够与之匹配。

    8310

    C语言-分支与循环(1)-学习笔记

    这时你会发现关于上面的代码,你输入值不管是>=18还是<18,"可以谈恋爱了"都会打印屏幕上。 为什么会这样呢?...就比如上面的代码就执行了 case 2和3语句。 所以 switch 语句中 break语句是非常重要,能实现真正分支效果。...2.2 switch语句中default 使用 switch 语句时候,我们经常可能遇到一种情况,比如 switch 后表达式值无法匹配代码 case 语句时候,这时候要不就不做处理,...这是合法表达式,不会报错,但是通常达不到想要结果,即不是保证变量 j i 和 k 之间。因为关系运算符是从左到右计算,所以实际执行是下面的表达式。...C语言中,短路求值机制是由逻辑与(&&)和逻辑或(||)运算符来实现。这种机制允许我们构建更为简洁且高效逻辑表达式,因为它允许编译器表达式结果确定后避免不必要计算。

    6110

    Shell 快速指南

    非交互模式 简单来说,你可以将 shell 非交互模式理解为执行 shell 脚本。 非交互模式下,shell 从文件或者管道读取命令并执行。...双引号,变量引用或者命令置换是会被展开单引号是不会。...结果取决于一个包在[[ ]]里表达式。 条件表达式可以包含&&和||运算符,分别对应 与 和 或 。除此之外还有很多有用表达式。 共有两个不同条件表达式:if和case。...基元和组合表达式 由[[ ]](sh是[ ])包起来表达式被称作 检测命令 或 基元。这些表达式帮助我们检测一个条件结果。在下面的表里,为了兼容sh,我们用是[ ]。...这里可以找到有关bash单双括号区别的答案。 使用if if使用上跟其它语言相同。如果括号里表达式为真,那么then和fi之间代码会被执行。fi标志着条件代码块结束。

    3.3K101

    MongoDB聚合运算

    语法 aggregate() 方法基本语法格式如下所示: db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) 实例 Case1 集合数据如下...MongoDB聚合管道将MongoDB文档一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复表达式:处理输入文档并输出。...表达式是无状态,只能用于计算当前聚合管道文档,不能处理其它文档。 这里我们介绍一下聚合框架中常用几个操作: 常用管道 含义 $project 修改输入文档结构。...$skip 聚合管道跳过指定数量文档,并返回余下文档。 $unwind 将文档某一个数组类型字段拆分成多条,每条包含数组一个值。 $group 将集合文档分组,可用于统计结果。...聚合表达式字符串和算术运算符 运算符 说明 $add 计算数值总和。例如:valuePlus5:{$add:["$value",5]} $divide 给定两个数值,用第一个数除以第二个数。

    1.7K00

    Java基础第三天学习笔记

    表达式1 : 表达式2; * B:三元运算符执行流程 * C:案例演示 * 获取两个数最大值 03.07_Java语言基础(三元运算符练习)(掌握) * A:案例演示 * 比较两个整数是否相同...* B:案例演示 * 获取三个整数最大值 03.08_Java语言基础(键盘录入基本格式讲解)(掌握) * A:为什么要使用键盘录入数据 * a:为了让程序数据更符合开发数据 * b:...键盘录入三个数据,获取这三个数据最大值 03.11_Java语言基础(顺序结构语句)(了解) * A:什么是流程控制语句 * 流程控制语句:可以控制程序执行流程。...* 什么时候if语句实现不能用三元改进呢? * 当if语句控制操作是一个输出语句时候就不能。 * 为什么呢?因为三元运算符是一个运算符运算符操作完毕就应该有一个结果,而不是一个输出。...* 最后一个可以省略,其他最好不要省略 * 会出现一个现象:case穿透。 * 最终我们建议不要省略 * d:default一定要在最后吗? * 不是,可以在任意位置。但是建议最后。

    80570

    Java数据结构和算法(六)——前缀、中缀、后缀表达式

    前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现辅助工具,其中介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗...以及数据结构与本篇博客主题前缀、中缀、后缀表达式什么关系呢? 1、人如何解析算术表达式   如何解析算术表达式?...请大家先看看什么是前缀表达式,中缀表达式,后缀表达式:这三种表达式其实就是算术表达式三种写法,以 3+4-5为例   ①、前缀表达式:操作符操作数前面,比如 +-543   ②、中缀表达式:操作符操作数中间...由于后缀表达式运算符两个操作数后面,那么计算机解析后缀表达式时候,只需要从左向右扫描,也就是只需要向前扫描,而不用回头扫描,遇到运算符就将运算符放在前面两个操作符中间(这里先不考虑乘方类似的单目运算...,将结果存储返回,逆序显示即后缀表达式 public MyCharStack doTrans(){ for(int j = 0 ; j < input.length() ; j++){

    1.7K90

    JS 代码越来越难读了 ...

    2020 年 JS 状态调查,“你认为 JavaScript 目前缺少什么?“ 问题中,希望拥有管道操作符 答案排行第四名。 看来大家当前对 JS 连续操作写法还是不太满意啊。...两个互相竞争提案 关于管道运算符,目前 ES 中有两个相互竞争提案: Microsoft 提出 F# :是一种函数式编程语言,其核心基于 OCaml,这个运算符可以很方便写出柯里化风格代码。...Hack 管道运算符 下面是一个 Hack 管道运算符 |> 简单示例: 'ConardLi' |> console.log(%) // ConardLi 管道运算符 |> 左侧是一个表达式,它被计算并成为特殊变量...因此,以下两个表达式是等价: 'ConardLi' |> console.log console.log('ConardLi') 因此 F# 管道运算符更适合单参数函数,下面三个函数是等价:...以前我们肯定要定义一个临时变量或者函数外侧再包一个函数,使用管道运算符,我们可以这样做: function myFunc() { // ··· return theResult |> (console.log

    1.7K10
    领券