相关疑难解决方法(0)

你最有争议的编程意见是什么?

这绝对是主观的,但我想尽量避免它变得有争议.我认为如果人们适当地对待它可能是一个有趣的问题.

对这个问题的想法来自评论跟帖从我的回答:"你恨你喜欢的语言什么的五件事?" 问题.我争辩说C#中的类应该默认密封 - 我不会把我的推理放在这个问题上,但我可以写一个更全面的解释作为这个问题的答案.我对评论中讨论的热度感到惊讶(目前有25条评论).

那么,持有什么有争议的意见?我宁愿避免那种以相对较少的基础(例如括号放置)而变得非常宗教的东西,但是例子可能包括诸如"单元测试实际上并不十分有用"或"公共领域真的很好"之类的东西.重要的是(对我来说,无论如何)是你有理由支持你的意见.

请提出您的意见和推理 - 我鼓励人们投票支持有争议和有趣的意见,无论您是否恰好同意这些意见.

language-agnostic

363
推荐指数
237
解决办法
29万
查看次数

在函数Haskell中定义变量

我是Haskell的新手,我实际上刚刚在10分钟前开始.我试图弄清楚如何在函数内定义变量.让我们说我有这个功能

foo :: Int -> Int
foo a = 
    b = a * 2
    b
-- Yes, I know, it doesn't do anything interesting
Run Code Online (Sandbox Code Playgroud)

当我运行它时,GHCi我得到一个语法错误!如何在函数内定义变量?

haskell

11
推荐指数
2
解决办法
2万
查看次数

Haskell使用什么类型的范围?

我试图弄清楚Haskell是使用动态还是静态范围.我意识到,例如,如果你定义:

let x = 10
Run Code Online (Sandbox Code Playgroud)

然后定义功能

let square x = x*x
Run Code Online (Sandbox Code Playgroud)

你有2个不同的"x",这是否意味着它是动态范围的?如果没有,它使用什么范围,为什么?

此外,Haskell变量是否具有别名(相同内存位置/值的不同名称)?

谢谢.

alias haskell scope

6
推荐指数
3
解决办法
8747
查看次数

为什么我被迫用小写的第一个字母写(数据构造函数)名称?

为什么我被迫写liOfLi代替LiOfLi?请指导.

baby.hs中的代码

LiOfLi = [[1,3,4,5,6,8],[12,13,15,16,19,20],[23,24,25,45,56]]

ghci回复:

ghci>:l baby
[1/1]编译Main(baby.hs,解释)
失败,模块加载:无.

ghci> baby.hs:29:1:不在范围内:数据构造函数`LiOfLi'

将首字母更改为较小的情况时

baby.hs中的代码

liOfLi = [[1,3,4,5,6,8],[12,13,15,16,19,20],[23,24,25,45,56]]

ghci回复:

ghci>:l baby
[1/1]编译Main(baby.hs,解释)
好的,模块加载:Main.

以下是我提到的SO问题,但我没有理解规则/逻辑,并得到(我)上述问题的答案.

为什么Haskell强制数据构造函数的第一个字母是大写?

变量名称必须小写.与此相关的官方文档位于haskell.org/onlinereport/intro.html#namespaces - (SO评论) Chris Kuklewicz

haskell

4
推荐指数
1
解决办法
1399
查看次数

Haskell - for循环

如果我想表达像[只是一个简单的例子]:

int a = 0;
for (int x = 0; x < n; x += 1)
    a = 1 - a;
Run Code Online (Sandbox Code Playgroud)

我应该在Haskell中做什么,因为它没有可变的概念?(也许是错的,请参阅:Haskell有变量吗?)

variables haskell loops for-loop immutability

3
推荐指数
5
解决办法
9171
查看次数