小编J C*_*per的帖子

foldr与foldl(或foldl')的含义

首先,我正在阅读的真实世界Haskell表示永远不会使用foldl而是使用foldl'.所以我相信它.

但我对什么时候使用foldrvs. 朦胧foldl'.虽然我可以看到他们如何以不同的方式摆放在我面前的结构,但是当"哪个更好"时,我太愚蠢了.我想在我看来似乎并不重要,因为它们都产生相同的答案(不是吗?).事实上,我以前使用这个结构的经验来自Ruby inject和Clojure reduce,它们似乎没有"左"和"右"版本.(附带问题:他们使用哪个版本?)

任何有助于像我这样的智能挑战的洞察力都会非常感激!

recursion haskell functional-programming fold

150
推荐指数
7
解决办法
3万
查看次数

Haskell,Lisp和冗长

对于那些在Haskell和一些Lisp中都有经验的人,我很好奇是如何"愉快"(使用一个可怕的术语)是在Haskell和Lisp中编写代码.

一些背景:我学习Haskell现在,稍早有计划和CL(和一点点进军Clojure的)工作.传统上,你可以认为我是动态语言的粉丝,因为它们提供了简洁和快速.我很快就爱上了Lisp宏,因为它给了我另一种避免冗长和样板的方法.

我发现哈斯克尔难以置信的有趣,因为它把我介绍给编码我不知道的方式.它肯定有一些方面似乎有助于实现敏捷性,比如易于编写部分功能.不过,我有点担心失去Lisp的宏(我假设我失去他们,说实话我可能只是没有了解他们吗?)和静态类型系统.

会有人谁做了两个世界编码,像样的数目介意评论经验如何不同,您喜欢哪一种,如果说偏好的态势?

lisp comparison haskell language-comparisons

104
推荐指数
7
解决办法
3万
查看次数

Haskell:<*>如何发音?

你如何在Applicative类型类中发音这些函数:

(<*>) :: f (a -> b) -> f a -> f b
(*>)  :: f a -> f b -> f b
(<*)  :: f a -> f b -> f a
Run Code Online (Sandbox Code Playgroud)

(也就是说,如果他们不是运营商,他们会被称为什么?)

作为旁注,如果你可以重命名pure为对非数学家更友好的东西,你会怎么称呼它?

haskell operators

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

F#:让mutable与ref

首先,我承认这个问题可能是重复的; 请告诉我

我很好奇当需要可变性时,对于那些情况,一般的"最佳实践"是什么.F#似乎为此提供了两种工具:let mutable绑定,它似乎像"大多数"语言中的变量一样工作,而参考单元(使用ref函数创建)需要显式解除引用才能使用.

有一对夫妇的情况下,其中一个是"被迫"转化为一种或另一种:.NET互操作倾向于使用可变带<-,并在工作流程的计算必须使用ref:=.所以这些案例非常明确,但我很好奇在这些场景之外创建自己的可变变量时该怎么做.一种风格比另一种风格有什么优势?(也许对实施的进一步了解会有所帮助.)

谢谢!

f# mutable

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

为什么F#的类型推断如此变幻无常?

F#编译器似乎以(相当)严格的从上到下,从左到右的方式执行类型推断.这意味着您必须执行诸如在使用之前放置所有定义,文件编译的顺序很重要,并且您倾向于需要重新排列内容(通过|>或有什么)以避免使用显式类型注释.

如何使这更灵活,并且计划用于F#的未来版本有多难?显然它可以完成,因为Haskell(例如)没有这种限制同样强大的推理.F#的设计或意识形态是否有任何本质上的不同?

f# type-inference language-design

67
推荐指数
5
解决办法
4246
查看次数

在F#中使用`inline`

inline在我看来,F#中的关键字与我在例如C中使用的目的有些不同.例如,它似乎影响函数的类型(什么是"静态解析的类型参数"?不是所有的F#类型静态解决?)

inline什么时候应该使用功能?

f# types inline

64
推荐指数
4
解决办法
7509
查看次数

良好的学习资源因素

最近遇到了这个关于Factor的介绍,我有点好奇了解更多.除了那里提到的官方常见问题解答之外,你是否有资源学习这门语言(以及基于堆栈的"范例",如果这是正确的话),你发现它有用吗?

作为旁注,会学习Forth帮助,还是将C与Python(或者你有什么)进行比较?

factor-lang

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

以编程方式设置Emacs帧大小

我的emacs(在Windows上)总是以设定的大小启动,这个规模相当小,如果我调整大小,它就不会在下次启动时"记住".

我一直在玩以下内容:

(set-frame-position (selected-frame) 200 2) ; pixels x y from upper left
(set-frame-size (selected-frame) 110 58) ; rows and columns w h
Run Code Online (Sandbox Code Playgroud)

当我在暂存缓冲区中执行它时,它完全有效.我把它放在我的.emacs中,虽然现在当我启动程序时,我可以看到帧临时设置为该大小,在*scratch*加载时,它会再次重置为小默认值.

任何人都可以帮我修复上面的代码,以便它"坚持"启动?

windows emacs dot-emacs

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

数学,编程和学习

关于数学和编程之间的关系,以及一个是否是另一个的子集等,已经在本网站上进行了讨论.

在我最近的编程研究中,我发现自己越来越希望自己在数学方面做得更好.你们都知道编程书籍开始用数学方式概括某些东西时的情景("因此,我们可以说这一点<some single letter>,<lots of letters>").在这种情况下,我的眼睛茫然.我知道这主要是因为我很愚蠢,但似乎如果我能提高自己更高的数学技能,也许我可以从这些事情中获得更多.

主要问题:数学确实是一个可以"变得更好"的东西,或者你的大脑是否适合或不接受?

重要的后续问题:如果上述答案是肯定的,那么有什么方法可以解决这个问题?

math

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

Go是否具有标准功能原语?

标准库(或受欢迎的商定库)是否允许我在切片/贴图上进行贴图,过滤,折叠等操作?

functional-programming go

23
推荐指数
1
解决办法
4411
查看次数