我读到了,你知道你已经知道了
枚举成员是按顺序排序的类型... 此类中的类型:(),Bool,Char ...
它也出现在一些签名中:
putChar :: Char -> IO ()
Run Code Online (Sandbox Code Playgroud)
在Google中很难找到有关它的信息,因为答案是指"常见括号"的问题(用于函数调用,优先级问题等).
因此,表达()
意味着什么?这是一种类型吗?什么是类型的变量()
?什么用于何时需要?
如何在Common LISP中递归删除嵌套括号,例如
(unnest '(a b c (d e) ((f) g))) => (a b c d e f g)
(unnest '(a b)) => (a b)
(unnest '(() ((((a)))) ())) => (a)
Run Code Online (Sandbox Code Playgroud)
谢谢
在Scala中,有两种方法可以定义一个不带参数的方法
1 def a=println("hello")
2 def a()=println("hello")
Run Code Online (Sandbox Code Playgroud)
这两种方法完全相同,但(2)可以使用和不使用括号来调用.
在Scala中是否有任何特殊原因允许使用此功能.它会让我感到困惑,何时使用?
array.include? 'foo' or array.include? 'bar'
Run Code Online (Sandbox Code Playgroud)
是语法错误(意外的keyword_or).圆括号解决了这个问题,但由于我是Ruby的新手,我不知道以下哪一个被认为是更惯用的:
array.include?('foo') or array.include?('bar')
Run Code Online (Sandbox Code Playgroud)
(array.include? 'foo') or (array.include? 'bar')
Run Code Online (Sandbox Code Playgroud)
这取决于个人偏好,还是一种被认为更"正确"的方法?
想知道是否有人会知道为什么我们在这个SQL中使用括号:所以,格式如下:
名称以A或B开头的员工的姓名,所在地和服务部门.(法语的粗略翻译).
我回答了以下方式:
SELECT service.nom_serv, localite.ville, localite.departemen
FROM service, localite, employe
WHERE service.code_loc=localite.code_loc
AND employe.service=service.code_serv
AND ((employe.nom LIKE 'A%') OR (employe.nom LIKE 'B%'))
Run Code Online (Sandbox Code Playgroud)
基本上,在最后一个AND关注WHERE的地方,我不能简单地没有括号,以便为我的员工选择一个名字以A或B开头的员工吗?以这种方式定位括号有何不同?而且ahy是否使用括号?或者它是否在最后一个子句中对OR进行优先级排序,因为AND在它之前?
我想匹配括号内的任何内容,但结果也必须排除括号.
示例:
初始化(P90W)
制动器(45X)
结果:
990W
45X
注意没有圆括号的结果.
我一直在努力使这项工作,但无济于事我尝试了一些变化,但我知道这是一个简单的事我错过了,我不想使用替换来实现它.
var item = "Brake(45X)"
Regex searchTerm = new Regex(@"\((.*)\)");
var value = (searchTerm.Match(item).Groups.Count > 0) ?
searchTerm.Match(item).Groups[0].Value : string.Empty;
Run Code Online (Sandbox Code Playgroud) 在bash中对命令进行分组时,我知道括号()
和花括号之间的目的不同.{}
但是为什么花括号构造在最后一个命令后需要分号,而对于括号构造,分号是可选的?
$ while false; do ( echo "Hello"; echo "Goodbye"; ); done $ while false; do ( echo "Hello"; echo "Goodbye" ); done $ while false; do { echo "Hello"; echo "Goodbye"; }; done $ while false; do { echo "Hello"; echo "Goodbye" }; done bash: syntax error near unexpected token `done' $
我正在寻找一些有关为何情况的见解.我不是在寻找诸如"因为文档说的那样"或"因为它是按照这种方式设计"的答案.我想知道为什么它的设计是这样的.或者,如果它只是一个历史文物?
至少在以下版本的bash中可以观察到这种情况:
在什么情况下,额外的分组括号会破坏C++中的内容(特别是C++ 11)?由于这里不相关的原因,我最终在一个表达式上有一个额外的,不必要的一组parens围绕它,我发现C++ 11 typeinfo函数is_same
确定它是一个不同于没有括号的相同代码.这是一个有点莫名其妙的行为的简要示例:
#include <iostream>
using namespace std;
int main()
{
string s = "foo";
cout << std::is_same<decltype(s), decltype(string("foo"))>::value;
cout << std::is_same<decltype(s), decltype((s))>::value;
cout << std::is_same<decltype((s)), decltype(string("foo"))>::value;
cout << std::is_same<decltype((s)+"x"), decltype(string("foo")+"x")>::value;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码打印"1001",这似乎表示中间两行中的额外parens导致表达式为不同类型,但在较大的表达式中使用该括号表达式使其再次成为相同类型.另一方面,如果我使用typeid获取类型的名称,typeid(s)
并且typeid((s))
似乎产生相同的东西.
我现在已经解决了眼前的问题,但我仍然不明白为什么会发生这种情况; 搜索"双括号c ++"之类的东西似乎没有出现任何相关内容(主要是有关运算符重载的页面,以及仅在特定关键字后激活的编译器扩展).
那么:这到底是怎么回事?为什么类型s
不同(s)
?
我是vim的新手,在发现大量有趣的东西的过程中,人们可以使用这个强大的编辑器.
我需要经常做的一件事是将文本中的一对括号更改为方括号(例如更改( (a+b+c) )
为[ (a+b+c) ]
)或反之亦然.我现在通过手动改变两个字符做到这一点(
,并)
以[
和]
.
但是,当括号之间有大量文本时,可能很难找到一对开括号和右括号,特别是因为在将第一个更改(
为[
之后,%
命令将不再能够找到相应的)
.
我想知道是否有更好更快的方法进行此类更改?
在Scala中编程时,我会做越来越多的功能.但是,使用中缀表示法时,很难判断何时需要括号,何时不需要.
例如下面的代码:
def caesar(k:Int)(c:Char) = c match {
case c if c isLower => ('a'+((c-'a'+k)%26)).toChar
case c if c isUpper => ('A'+((c-'A'+k)%26)).toChar
case _ => c
}
def encrypt(file:String,k:Int) = (fromFile(file) mkString) map caesar(k)_
Run Code Online (Sandbox Code Playgroud)
(fromFile(file)mkString)需要括号才能编译.删除后,我收到以下错误:
Caesar.scala:24: error: not found: value map
def encrypt(file:String,k:Int) = fromFile(file) mkString map caesar(k)_
^
one error found
Run Code Online (Sandbox Code Playgroud)
mkString显然返回一个字符串,在其上(通过隐式转换AFAIK)我可以使用map函数.
为什么这个特殊情况需要括号?关于何时以及为何需要它,是否有一般指导原则?
dictionary functional-programming scala infix-notation parentheses