函数返回一个Haskell纪录改良场

鉴于

data MyRecord a = MyRecord{list :: [a], other_fields :: Char, …}

我想写这使新的功能a名录,并返回一个新MyRecord

pushOntoList :: a -> MyRecord -> MyRecord

问题

有写方式pushOntoList是这样一种方式,它不依赖于什么是在记录的其余部分,而仅仅给它回未修改?

问这个另一种方法是你可以写pushOntoList没有看到其余MyRecord定义?

--------------解决方案-------------

是的,很容易使用记录访问/标签语法:

b = a { list = 'x' : list a }

如在功能:

pushOntoList ca = a { list = c : list a }

例如

data MyRecord a = MyRecord {list :: [a], other_fields :: Char}
deriving Show

main = do
let a = MyRecord [] 'x'
b = a { list = 'x' : list a }
return (a,b)

分类:哈斯克尔 时间:2012-01-01 人气:0
本文关键词: 语法,Haskell中,记录
分享到:

相关文章

  • 函数式语言(二郎,F#,Haskell中,斯卡拉) 2012-01-17

    1)适合于Web应用程序开发功能性语言? 2)适合于应用业务/ ERP / CRM型函数式语言? --------------解决方案------------- 你描述的那种功能性语言都是通用的编程语言,他们已经习惯了各样的事情,包括Web应用程序和业务应用程序. (我用哈斯克尔). 哈斯克尔是很好的Web应用程序? 建立在Haskell商用Web应用程序 由于的Gabor意味着,最终还是归结到库. Scala有一个Web框架:电梯. Haskell有happstack,以及2100 4400(

  • 与调用C语法静态方法中的OBJ-C? 2013-01-03

    我可以用适当的OBJ-C语法重做这个方法,但我想知道如何从OBJ - C的调用它. 该方法看起来是这样的 @interface YarMidiCommon : NSObject static MIDIPacketList *makePacketList(Byte *packetBuffer, const UInt8 *data, UInt32 size); @end 但我不知道如何调用该方法. 我努力了 Byte packetBuffer[size+100]; MIDIPacketList *p

  • 一个构造函数和在Delphi中记录的程序之间的区别是什么? 2013-01-13

    是否有一个构造函数调用,并在Delphi中记录的过程调用之间的行为差​​异? 我有一个D2010代码示例我要转换为D2009(我现在用的). 该示例使用参数的构造函数,这是不是在Delphi 2009年允许的.如果我取代了一个简单参数的过程调用,是有记录的任何功能上的区别? IE浏览器 TVector = record private FImpl: IVector; public constructor Create; // not allowed in D2009 end; 变 TVector

  • 我想双击一个字段中记录以某种形式与另一种形式打开记录 2014-10-04

    我想双击一个字段中记录以某种形式与另一种形式打开该记录. 我有一个列表的形式,我想双击一个字段的记录,并在该记录打开另一种形式. 第二种形式有一个子窗体. --------------解决方案------------- 你需要修复您的支架和周围的标准提供quotemarks(因为它是一个文本字段). 尝试 DoCmd.OpenForm"客户",_ WhereCondition:="[客户] [公司名称] ='!"与我公司名称&"'" 对于

  • 当WIN期运用的Windows DVD Maker中记录7.录制的光盘播放图像,但没有声音,为什么? 2012-01-18

    在Windows 7的Windows期运用DVD Maker中记录后已经烧毁,并播放录制的光盘只能播放的视频画面,但没有声音即使所有已开启扬声器和100%,为什么? 家庭视频我希望复制是AVI格式的会期运用的Windows DVD Maker中时,这有什么影响? Computor的是宏碁Aspire 5742Z并hardley以前现在用. 期待您的咨询. --------------解决方案------------- 嗨, 尝试刻录音乐CD,并检查音频播放, 1.你做任何最近的硬件或软件更改计算

  • 在Haskell中,Python和Ruby列表理解 2012-02-09

    我已经开始看项目欧拉网站的方式来学习哈斯克尔(和提高我的Python和Ruby)......我觉得Haskell和Python版本都OK,但我敢肯定,必须有一个红宝石更清洁的方式. 任何建议将受到欢迎! PS. 这不是关于我怎样才能使一种语言看起来像一个又一个! 我很开放,接受:) 这是问题1: 问:将所有的自然数低于千是3的倍数或5. 哈斯克尔 - sum [ x | x <- [1..999], mod x 3 == 0 || mod x 5 == 0 ] Python的 - sum ( [

  • 在一份报告中记录的数量限制 2012-04-01

    我使用的是报告中显示根据字段中的值上的记录. 我希望报告的结果限制到顶部50.我正在从查询中的数据,并且查询由其他报告和形式使用,因此使用查询限制结果是达不到最佳. 有没有办法来限制:在一个报告中报告其自身的结果吗? 任何帮助,这是非常赞赏. --------------解决方案------------- 你可以有超过报告的运行总和添加一个文本框(txtRunSum). 设置控制源= 1. 在On Format事件使用的代码取消的话已经有超过50个的记录打印. 私人小组Detail_Format

  • 使用PHP笨得到Excel工作表中记录到MySQL数据库 2012-04-09

    如何获得使用笨PHP从Excel工作表中记录的MySQL数据库? --------------解决方案------------- 这里是最好的地方开始:代码点火器的Excel库 你需要包括图书馆(无论是在配置/自动加载,或者用$这个 - >负载> EXCEL)和火起来的中列出的CI维基该链接的例子. 这是很简单的.

  • 在C#中记录异常 2012-04-15

    记录异常 ,这是低于其用于在文本文件中记录异常代码. 在这里,我得到的错误,只有能解密. 但它没有告诉我哪里有例外,在该行发生.就任何ONR告诉我howi可以achive这让我得到连行号发生异常. try { } catch (Exception ex) { Console.WriteLine(ex.Message); } #region WriteLogError /// <summary> /// Write an error Log in File /// </summary>

  • 为什么在Haskell中写类型声明? 2012-09-17

    我是新来Haskell和我试图理解为什么人们需要写类型声明. 由于哈斯克尔有类型推断,当我需要的第一行呢? 了ghci似乎与我用它来生成正确的输出":T' 我迄今发现的唯一的例子,似乎需要声明如下. maximum' :: (Ord a) => [a] -> a maximum' = foldr1 max 不过,如果我添加不再次需要"-XNoMonomorphismRestriction"标记声明. 如果是类型推断这里是行不通的具体情况,一个需要指定类型? 因为我

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.843 (s). 10 q(s)