首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GHCI启用"=“符号

GHCI启用"=“符号
EN

Stack Overflow用户
提问于 2020-03-29 09:01:44
回答 1查看 69关注 0票数 0

其目的是根据元组的第二个元素对元组(名称)列表进行排序。

代码语言:javascript
复制
module Learn where
import Data.List

names = [("Ian", "Curtis"),("Bernard","Sumner"),("Peter","Hook"),("Stephen","Morris")]

compareLastNames name1 name2 = if lastName1>lastName2
 then GT else if lastName1<lastName2 then LT else EQ where lastName1=snd name1 lastName2=snd name2

然后我会打电话给

代码语言:javascript
复制
sortBy compareLastNames names

GHCI不想吞下这个文件,并在"=“上发誓。找不到enter image description here的原因

EN

回答 1

Stack Overflow用户

发布于 2020-03-29 09:11:14

您需要在定义函数时使用适当的空格:

代码语言:javascript
复制
compareLastNames name1 name2 = if lastName1>lastName2then GT else if lastName1<lastName2 then LT else EQ 
    where 
      lastName1=snd name1 
      lastName2=snd name2

不过,使用模式匹配来定义这要简单得多,因为避免了对snd的显式调用。

代码语言:javascript
复制
compareLastNames (_, lastName1) (_, lastName2) = if lastName1 > lastName2 then GT else if lastName1<lastName2 then LT else EQ

您还可以使用前奏中的compare函数:

代码语言:javascript
复制
compareLastNames (_, lastName1) (_, lastName2) = compare lastName1 lastName2

Data.Ord.comparing

代码语言:javascript
复制
import Data.Ord
compareLastNames name1 name2 = comparing snd name1 name2
-- compareLastNames = comparing snd
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60908984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档