小编Jas*_*ker的帖子

解密C++模板错误消息

当他们说C++的错误消息在模板方面非常糟糕时,我真的开始明白人们的意思了.我已经看到了一些非常长的错误,就像一个与原型不匹配的函数一样简单.

有没有解决这些错误的技巧?

编辑:我正在使用gcc和MSVC.它们似乎都非常可怕.

c++ templates compiler-errors

27
推荐指数
3
解决办法
8499
查看次数

向我解释连接语言,就像我是一个8岁的孩子

我已经阅读了关于连接语言维基百科文章,现在我比起初时更加困惑.:-)

用愚蠢的人来说,什么是串联语言?

programming-languages concatenative-language

27
推荐指数
5
解决办法
3286
查看次数

使用DynamicInvoke直接调用委托和使用DynamicInvokeImpl有什么区别?

DynamicInvoke和DynamicInvokeImpl的文档都说:

动态调用(后期绑定)当前委托表示的方法.

我注意到DynamicInvoke和DynamicInvokeImpl采用了一个对象数组而不是一个特定的参数列表(这是我猜的后期绑定部分).但这是唯一的区别吗?DynamicInvoke和DynamicInvokeImpl之间有什么区别.

c# delegates

27
推荐指数
3
解决办法
1万
查看次数

Lisp松散地成为什么类型的lambda演算?

我试图更好地掌握类型如何在lambda演算中发挥作用.不可否认,许多类型理论的东西都在我的头上.Lisp是一种动态类型语言,大致对应于无类型lambda演算?还是有一种我不知道的"动态类型的lambda演算"?

lisp type-theory lambda-calculus

25
推荐指数
1
解决办法
3944
查看次数

如何让我的大脑进入"lisp模式?"

我的教授告诉我们,我们可以为下一个编程任务选择一种编程语言.我一直想尝试一种功能语言,所以我想我会尝试使用clojure.问题是我理解了语法并理解了基本概念,但是我遇到了一些问题,让我在脑海中"点击".有人有建议吗?或者我可能选错了语言来开始函数式编程?

lisp functional-programming clojure

24
推荐指数
4
解决办法
1720
查看次数

为什么逻辑编程没有流行?

随着时间的推移,似乎越来越像函数式编程对其他编程语言产生更多影响.我们在我的AI课程中开始使用Prolog,似乎有一些东西可以使非AI领域的编程变得更容易.我的问题是:为什么逻辑编程没有以同样的方式被捕获?

在本主题中,似乎达成了一个普遍的共识,即逻辑编程很有用,但必须这样证明.它有没有被认为有用的原因?

更新:也许我应该更清楚一点.我不是在问Prolog.我可以理解为什么在大多数真实世界的应用程序中选择Prolog不是一个好主意.

为了举一个我正在讨论的内容的例子,请考虑Python中的列表推导/ map/filter.这些明显受功能语言的影响.为什么像Python这样的语言还没有从逻辑编程语言中学到这些东西,比如它们有函数式语言?

programming-languages prolog logic-programming

24
推荐指数
6
解决办法
8444
查看次数

什么是广度优先搜索有用?

通常当我不得不走图表时,由于空间复杂度较低,我总是使用深度优先搜索.我诚实从未见过呼吁广度优先搜索,但我的经验的情况相当有限的.

什么时候使用广度优先搜索是有意义的?

更新:我想我的答案在这里表示我已经使用了BFS(因为我觉得这是一个DFS)的情况.我仍然很想知道,为什么它在这种情况下很有用.

algorithm search graph-theory breadth-first-search depth-first-search

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

如何将静态方法传递给clojure中的comp?

好像我Integer.parseInt在comp中访问时遇到了问题.我可以像这样正常访问它:

user=> (Integer/parseInt "123")
123
Run Code Online (Sandbox Code Playgroud)

但如果我把它放在comp中,我会收到一个错误:

user=> (def vect-to-int (comp Integer/parseInt (partial apply str)))
java.lang.Exception: Unable to find static field: parseInt in class java.lang.Integer (NO_SOURCE_FILE:3)
Run Code Online (Sandbox Code Playgroud)

听起来我觉得它应该在寻找方法时尝试在Integer上找到一个字段.我Integer.parseInt该怎么用?是否有更好的方法将字符向量转换为int

string integer vector clojure

24
推荐指数
2
解决办法
3142
查看次数

而语言

对于我的计算语言类的理论,我们得到了一个家庭作业,用一种语言来实现一段代码,该语言只有流控制的while语句(没有if语句).这主要是为了证明你可以只使用while循环编写图灵完备语言.

对于那些能理解语言语法的人,以下是语言规则:

S -> S;S | while C do S od | id := E

E -> E + T | T | E - T

T -> T * F | F | F / T

F -> id | cons | (E)

C -> E = E | E > E | E < E | E >= E | E <= E | E != E | C and C | C or C | not(C)
Run Code Online (Sandbox Code Playgroud)

这是从我的班级笔记中复制的,所以如果缺少或不正确,请不要责怪我! …

language-theory while-loop

23
推荐指数
3
解决办法
5040
查看次数

方案宏有哪些优点?

为什么有人会更喜欢Scheme宏而不是Common Lisp宏(我真的也想知道,我不是想成为一个巨魔)?

我作为Lisp newb的经验是,Common Lisp风格的宏比Scheme的宏更容易学习.我还没有看到Scheme的宏有任何优点,但当然这并不意味着它们不存在.

我知道Scheme宏是"hygenic",但我仍然不相信这是值得的额外复杂性.在另一方面,虽然,有很明显人是相信,这是必要的,否则就不会有Common Lisp中的宏方案的实现.

长话短说,有人可以向我捍卫Scheme的宏吗?

lisp macros scheme common-lisp

23
推荐指数
2
解决办法
4823
查看次数