Tag: 语法

在Haskell中有没有一种很好的方法来使函数签名更加丰富?

我意识到这可能被认为是一个主观的或者是一个偏离主题的问题,所以我希望不要把它closures,否则会被迁移,也许会被程序员所接受。 我开始学习Haskell,主要是为了我自己的启发,我喜欢支持这种语言的很多想法和原则。 在和Lisp一起玩语言理论课之后,我开始对函数式语言着迷,而且我也听到很多关于Haskell的生产能力的好消息,所以我想我会自己调查一下。 到目前为止,我喜欢这种语言,除了我无法摆脱的一件事情:那些母亲正在执行function签名。 我的专业背景主要是做OO,特别是在Java。 我曾经工作过的大部分地方都有许多标准的现代教条。 敏捷,Clean Code,TDD等。经过这几年的工作,它已经成为我的舒适区; 特别是“好”的代码应该是自我logging的思想。 我已经习惯了在IDE中工作,在这个IDE中,具有非常具有描述性签名的冗长冗长的方法名称对于智能自动完成和用于导航程序包和符号的大量分析工具来说是不成问题的; 如果我可以在Eclipse中按Ctrl + Space,然后通过查看其名称和与其参数相关联的局部范围variables(而不是拉起JavaDocs)来推断出一种方法正在做什么,我就像一头猪一样快乐。 这肯定不是哈斯克尔社区最佳实践的一部分。 我已经阅读了很多关于这个问题的不同意见,我知道Haskell社区认为它的简洁性是一个“专业”。 我已经阅读了如何阅读Haskell ,我理解很多决定背后的原理,但这并不意味着我喜欢它们。 一个字母的variables名等等对我来说都不好玩。 我承认,如果我想继续使用这种语言,我必须习惯这一点。 但我无法克服function签名。 拿这个例子来说,从学习Haskell […]的函数语法部分: bmiTell :: (RealFloat a) => a -> a -> String bmiTell weight height | weight / height ^ 2 <= 18.5 = "You're underweight, you emo, you!" | weight / height ^ 2 […]

为什么Java不允许对迭代器进行foreach(仅在iterables上)?

可能重复: 为什么Java的迭代器不是可迭代的? 每个循环给定一个迭代器的习惯用法? 我们可以使用for-each循环来迭代Iteratortypes的对象吗? foreach循环据我所知在Java 5中添加语法糖。所以 Iterable<O> iterable; for(O o : iterable) { // Do something } 将基本上产生与之相同的字节码 Iterable<O> iterable; for(Iterator<O> iter = iterable.iterator(); iter.hasNext(); /* NOOP */) { O o = iter.next(); // Do something } 但是,如果我没有一个迭代器,但只有一个迭代器(比如,因为一个类提供了两个不同的迭代器),我不能使用语法糖foreach循环。 显然我仍然可以做简单的旧式迭代。 不过,我真的想这样做: Iterator<O> iter; for(O o : iter /* Iterator<O>, not Iterable<O>! */) { // Do something […]

Haskell运算符允许使用哪些字符?

是否有一个允许的字符的完整列表,或者是一个规则,确定可以在标识符与操作符中使用的内容?

Makefile中括号$()和花括号$ {}的区别是什么?

语法${var}和$(var)调用variables有什么区别吗? 例如,variables的方式将被扩展或任何东西?

可以$()总是取代反引号的命令replace?

以下代码无法生成二进制数字,如果反引号被美元括号语法replace: #!/bin/bash rm test.bin 2>/dev/null for character in {0..255} do char=`printf '\\\\x'"%02x" $character` printf "$char" >> test.bin done hexdump -C test.bin 结果: 00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f |…………….| 00000010 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d […]

用//注释掉单行CSS是不是很糟糕的做法?

我最近开始使用//来“注释”出单行的CSS代码。 我知道我实际上并没有对此作出评论, 我只是打破它(我应该使用/* … */ ),但它具有相同的效果。 该行然后被终止; 和下面的代码工作正常。 我可以删除它,但是我经常不想在以后再使用它,或者如果我回来看看我一直在使用什么。 例: li{ float:left; //list-style-type:none; text-indent:0px; } 我可以逃避这个,还是可能导致我的问题?

编程语言的语法和语义有什么区别?

编程语言(如C,C ++)中的语法和语义有什么区别?

什么是案例OR-ing的VB.NETselect案例语句逻辑?

我在我的例子expression式中使用了一个Or语句。 即使我有这个范围内的价值,它没有find一个匹配。 为什么不? 示例代码 : Select Case 2 Case 0 ' Some logic Case 1 ' Some other logic Case 2 Or 3 Console.WriteLine("hit") End Select 有了上面的内容,我会认为打印会被打印,但事实并非如此。

有一种人类可读的编程语言吗?

我的意思是,有没有一种编码语言与人类风格编码? 例如: Create an object called MyVar and initialize it to 10; Take MyVar and call MyMethod() with parameters. . . 我知道这不是很有用,但创build这样一个语法可能很有趣。

JQuery .hasClass用于if语句中的多个值

我有一个简单的if语句: if ($('html').hasClass('m320')) { // do stuff } 这按预期工作。 但是,我想添加更多的类到if statement来检查是否存在任何类在<html>标记。 我需要它,所以它不是所有的人,但至less有一个类的存在,但它可以更多。 我的用例是,我有类(例如m320 , m768 )为各种视口宽度添加,所以我只想执行某些Jquery,如果它是一个特定的宽度(类)。 这是我迄今为止所尝试的: 1。 if ($('html').hasClass('m320', 'm768')) { // do stuff } 2。 if ($('html').hasClass('m320')) || ($('html').hasClass('m768')) { // do stuff } 3。 if ($('html').hasClass(['m320', 'm768'])) { // do stuff } 这些似乎没有工作。 不知道我在做什么错,但很可能是我的语法或结构。