我是一名正在通过"真实世界Haskell"工作的C#开发人员,以便真正理解函数式编程,因此当我学习F#时,我真的会理解它,而不仅仅是"在F#中编写C#代码",可以这么说.
好吧,今天我偶然发现了一个例子,我认为我已经理解了3次不同的时间,然后才看到我错过的东西,更新我的解释,然后递归(并诅咒,相信我).
现在我相信我确实理解它,并且我在下面写了详细的"英语解释".你可以请哈斯克尔大师确认理解,或指出我错过了什么?
注意:Haskell代码片段(直接引自本书)定义了一种自定义类型,该类型与内置的Haskell列表类型同构.
Haskell代码片段
data List a = Cons a (List a)
| Nil
defining Show
Run Code Online (Sandbox Code Playgroud)
编辑:经过一些回应后,我看到了一个误解,但我不太清楚Haskell"解析"规则会纠正这个错误.所以我在下面列出了我原来的(不正确的)解释,然后进行了修正,接着是我仍然不清楚的问题.
编辑:这是我原来的(不正确的)"片段的"英语解释"
更正的解释如下(BOLD的变化)
如果使用"Nil"值构造函数,则没有字段.
5.(此行已被删除...它不准确)"Cons"值构造函数具有单个类型参数.
如果使用"Cons"值构造函数,则必须提供2个字段.第一个必填字段是a的实例.第二个必填字段是"List-of-a"的实例.
这个问题目前还不清楚
最初的混淆是关于片段的部分"Cons a(List a)".事实上,这是我仍然不清楚的部分.
人们已经指出"Cons"标记之后的行上的每个项目都是一个类型,而不是一个值.所以这意味着这一行说"Cons值构造函数有两个字段:一个是'a'类型,另一个是'list-of-a'."
知道这非常有帮助.但是,有些事情仍然不清楚.当我使用Cons值构造函数创建实例时,这些实例将第一个'a'解释为"将值传递到此处".但他们并没有以同样的方式解释第二个'a'.
例如,考虑一下这个GHCI会议:
*Main> Cons 0 Nil
Cons 0 Nil
*Main> Cons 1 it
Cons 1 (Cons 0 Nil)
*Main>
Run Code Online (Sandbox Code Playgroud)
当我输入"Cons 0 Nil"时,它使用"Cons"值构造函数来创建List的实例.从0开始,它知道类型参数是"整数".到目前为止,没有混乱.
然而,它也确定该值的缺点的第一个字段值为0.然而,它决定什么对价值的第二个字段的......它只是确定第二场有一个类型 "列表整数"的.
所以我的问题是,为什么"一个"在第一场的意思是"这个字段的类型是'A’ 和 …
重复
亲爱的大家,
我有一个PHP页面,我将显示来自Mysql db的一些数据.我有2个日期要显示在此页面上.在我的数据库表中,日期1的格式为d/m/Y(例如:11/11/2002),日期2的格式为dmY(例如:11-11-我需要以相同的格式显示这两种格式.我存储在变量$ dateFormat ='m/d/Y'中的格式
任何人都可以指导我
提前致谢
我参与了一个用Qt编写的软件项目,并在Linux上使用qmake和gcc构建.我们必须链接到质量相当低并且发出大量警告的第三方库.我想在我们的源代码上使用-W -Wall,但是将-w传递给讨厌的第三方库以保持控制台没有噪音和混乱,因此我们可以专注于我们的代码质量.
在qmake中,有没有办法有条件地将CFLAGS/CXXFLAGS添加到某些文件和库中?
比方说,我有一个表ClientClde,就像这样:
ClientName , TradeDate , Quantity
Run Code Online (Sandbox Code Playgroud)
我想在Oracle PLSQL中创建一个查询,它应该返回如下结果:(天数来自TradeDate列,Mon = sum(数量)表示Mon,Tue = sum(Quantity)表示Tue ......等等. )
ClientName Mon Tue Wed Thu Fri Sat Sun TotalForWeek
ABC 10 15 5 2 4 0 0 34
XYZ 1 1 2 1 2 0 0 7
Run Code Online (Sandbox Code Playgroud)
假设此报告始终具有使其运行一周的条件,是否可以在单个查询中创建此报告?
我在一家在VC6上进行C++开发的公司工作,我们正考虑转向VS 2008.
升级有什么好处?
有什么缺点?
有关迁移项目文件的任何指南/步骤,或者我应该注意的问题?人们可以转向不同的开发界面吗?
我的目的是要有一个单一的线程,让你做一个更好的程序员 - 只是为了阅读的文章或论文或真正站立的博客文章,作者已付出了很多努力来提炼(任何会花费你不到一天阅读的东西).我没有时间挖掘互联网的巨大信息隐藏(大部分时间),所以如果我们通过在好东西上放置信标来互相帮助,我们都可以节省时间.
必须
我看到我们已经有了' 什么是最好的编程文章?'并且有一些重叠(至少与第一页相同)_我找不到用于表达我想传达的差异的词语.我想重点在于"工艺"方面.
希望有足够的人发现这个想法有一些用处和贡献..或者它被投票/关闭,并没有增加噪音.
我的程序有多个线程.我正在使用messagebox向用户显示信息.无论如何(或消息框的替代方案)我可以让另一个线程更新/更改消息框显示文本,而消息框仍然在屏幕上并且可由用户看到?
YSlow表示从我的CSS文件(例如背景图像)引用的图像不是GZip.我在IIS7中为我的网站打开了静态和动态压缩...所以它们应该被压缩.
这是YSlow的错误还是来自CSS文件的图像请求会忽略压缩标头?
有没有办法让这些图像GZipped?
(我知道这不是一个编程问题本身,但它涉及正则表达式,所以至少它是边界...)
设置:
在Windows上使用mod_rewrite的Apache 2.0.两个域,我们称之为domain1.example和domain2.example.我想在同一台服务器("server1")上托管这两个域,所以我将它们指向同一个IP地址.
现在,如果用户在他的浏览器中键入"domain2.example",我希望他最终位于服务器上的子目录**中,但保留他输入的域名("domain2.example/domain2 /").当然,重定向必须保留此域/目录下的页面上的所有绝对和相对链接.
这是可能的mod_rewrite(或Apache虚拟主机或其他方法),我该怎么做?
**在这种情况下,"子目录"实际上不是磁盘上的文件夹,而是使用Apache"Location"指令创建的虚拟文件夹.
谢谢.