当他们说C++的错误消息在模板方面非常糟糕时,我真的开始明白人们的意思了.我已经看到了一些非常长的错误,就像一个与原型不匹配的函数一样简单.
有没有解决这些错误的技巧?
编辑:我正在使用gcc和MSVC.它们似乎都非常可怕.
DynamicInvoke和DynamicInvokeImpl的文档都说:
动态调用(后期绑定)当前委托表示的方法.
我注意到DynamicInvoke和DynamicInvokeImpl采用了一个对象数组而不是一个特定的参数列表(这是我猜的后期绑定部分).但这是唯一的区别吗?DynamicInvoke和DynamicInvokeImpl之间有什么区别.
我试图更好地掌握类型如何在lambda演算中发挥作用.不可否认,许多类型理论的东西都在我的头上.Lisp是一种动态类型语言,大致对应于无类型lambda演算?还是有一种我不知道的"动态类型的lambda演算"?
我的教授告诉我们,我们可以为下一个编程任务选择一种编程语言.我一直想尝试一种功能语言,所以我想我会尝试使用clojure.问题是我理解了语法并理解了基本概念,但是我遇到了一些问题,让我在脑海中"点击".有人有建议吗?或者我可能选错了语言来开始函数式编程?
随着时间的推移,似乎越来越像函数式编程对其他编程语言产生更多影响.我们在我的AI课程中开始使用Prolog,似乎有一些东西可以使非AI领域的编程变得更容易.我的问题是:为什么逻辑编程没有以同样的方式被捕获?
在本主题中,似乎达成了一个普遍的共识,即逻辑编程很有用,但必须这样证明.它有没有被认为有用的原因?
更新:也许我应该更清楚一点.我不是在问Prolog.我可以理解为什么在大多数真实世界的应用程序中选择Prolog不是一个好主意.
为了举一个我正在讨论的内容的例子,请考虑Python中的列表推导/ map/filter.这些明显受功能语言的影响.为什么像Python这样的语言还没有从逻辑编程语言中学到这些东西,比如它们有函数式语言?
通常当我不得不走图表时,由于空间复杂度较低,我总是使用深度优先搜索.我诚实从未见过呼吁广度优先搜索,但我的经验的情况是相当有限的.
什么时候使用广度优先搜索是有意义的?
更新:我想我的答案在这里表示我已经使用了BFS(因为我觉得这是一个DFS)的情况.我仍然很想知道,为什么它在这种情况下很有用.
algorithm search graph-theory breadth-first-search depth-first-search
好像我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?
对于我的计算语言类的理论,我们得到了一个家庭作业,用一种语言来实现一段代码,该语言只有流控制的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)
这是从我的班级笔记中复制的,所以如果缺少或不正确,请不要责怪我! …
为什么有人会更喜欢Scheme宏而不是Common Lisp宏(我真的也想知道,我不是想成为一个巨魔)?
我作为Lisp newb的经验是,Common Lisp风格的宏比Scheme的宏更容易学习.我还没有看到Scheme的宏有任何优点,但当然这并不意味着它们不存在.
我知道Scheme宏是"hygenic",但我仍然不相信这是值得的额外复杂性.在另一方面,虽然,有很明显的人是相信,这是必要的,否则就不会有Common Lisp中的宏方案的实现.
长话短说,有人可以向我捍卫Scheme的宏吗?
lisp ×3
clojure ×2
algorithm ×1
c# ×1
c++ ×1
common-lisp ×1
delegates ×1
graph-theory ×1
integer ×1
macros ×1
prolog ×1
scheme ×1
search ×1
string ×1
templates ×1
type-theory ×1
vector ×1
while-loop ×1