写作一个未经重构的命令和OO程序员......
最近和Erlang以及Haskell搞砸了.我喜欢Erlang,还不确定Haskell.功能似乎更像数学而不是编程,希望有意义.功能编程似乎非常强大.
阅读关于互动函数编程的文档我经常遇到"currying"这个词.我似乎只找到了一些有点过头的文档 - 很多术语都没有定义.
什么是currying?
我已经找了类似的已经发布的问题,但没有找到任何东西,所以请随意指出我已建立的线程.
看到一篇关于C#中隐藏功能的帖子,但很多人都没有写过linq/lambdas的例子......所以......我想知道......
你见过/写过的C#LINQ和/或Lambdas /匿名代表的最酷(最优雅)是什么?
奖金,如果它也投入生产!
为什么功能语言总是在基准测试中落后于C?如果你有一个静态类型的函数式语言,在我看来它可以被编译成与C相同的代码,或者甚至更优化的代码,因为编译器可以使用更多的语义.为什么看起来所有函数式语言都比C慢,为什么它们总是需要垃圾收集和过度使用堆?
有没有人知道适用于嵌入式/实时应用程序的功能语言,其中内存分配保持在最低限度并且生成的机器代码是精简和快速的?
我经常听说函数式编程解决了许多在程序/命令式编程中难以解决的问题.但我也听说过程序编程自然很擅长的其他一些问题并不是很好.
在我打开关于Haskell的书并深入研究函数式编程之前,我至少想了解一下我能用它的基本概念(在本书的例子之外).那么,函数式编程擅长的是什么呢?它不适合的问题是什么?
到目前为止,我已经得到了一些很好的答案.我迫不及待地开始学习Haskell - 我只需要等到我掌握C :)
函数式编程很棒的原因:
函数式编程困难的领域:
UML是一个旨在用软件建模的标准,它将用OO语言编写,并与Java携手并进.它是否可能用于模拟软件的功能编程范式?鉴于嵌入的视觉元素,哪些图表将变得有用?
是否有针对函数式编程的建模语言,更具体地说是Haskell?你会推荐哪些工具来组合图表?
我正在寻找的是代码中发生的最直观,最轻的代表.易于遵循的图表,视觉模型不一定针对其他程序员.我很快就会在Haskell开发一款游戏,但由于这个项目是我的毕业结论工作,我需要介绍一下拟议解决方案的某种形式化.我想知道是否有相当于UML + Java标准,但对于Haskell.我应该坚持使用故事板,书面描述,非正式化的图表(一些浅的流程图图像),非正式的用例描述吗?
请注意,提问者最初想要一个视觉元素,现在我们已经有三年了,我们正在寻找更多/更好的工具.原始答案都没有真正解决"视觉隐喻设计工具"的概念,所以......这就是新的赏金所要提供的.
modeling haskell programming-languages functional-programming
F#中的::运算符始终将元素添加到列表中.是否有运营商附加到列表中?我猜是使用@运算符
[1; 2; 3] @ [4]
效率低于附加一个元素.
假设我有以下数据模型,用于跟踪棒球运动员,球队和教练的统计数据:
data BBTeam = BBTeam { teamname :: String,
manager :: Coach,
players :: [BBPlayer] }
deriving (Show)
data Coach = Coach { coachname :: String,
favcussword :: String,
diet :: Diet }
deriving (Show)
data Diet = Diet { dietname :: String,
steaks :: Integer,
eggs :: Integer }
deriving (Show)
data BBPlayer = BBPlayer { playername :: String,
hits :: Integer,
era :: Double }
deriving (Show)
Run Code Online (Sandbox Code Playgroud)
现在让我们说经常是牛排狂热分子的经理想要吃更多的牛排 - 所以我们需要能够增加经理人饮食中的牛排含量.以下是此功能的两种可能实现:
1)这使用了大量的模式匹配,我必须得到所有构造函数的所有参数排序正确...两次.它似乎不会很好地扩展或者非常易于维护/读取.
addManagerSteak :: BBTeam -> BBTeam
addManagerSteak (BBTeam …Run Code Online (Sandbox Code Playgroud) 我读了几个问题,比如Scala和Haskell讨论两种语言的优点或者要学习哪些,但我已经知道我想学习Scala.我是uni的Java程序员,现在主要使用PHP.
我想学习Scala,因为它看起来像个人项目的Java改进,我也想学习一种函数式语言来提高我作为程序员的知识.
我想知道将Haskell作为函数式编程的介绍是否是一个好主意,因为它纯粹是函数式的,所以我应该正确地学习它而不是偶然使用Scala中的一些函数而不知道为什么?
我也喜欢将Haskell用于个人项目等,因为它看起来很棒,但我并没有真正看到它的许多真实应用,似乎更多地用于学术事物,因此想要学习它以获得功能性理解然后继续斯卡拉
有人可以简单地解释两者之间的区别吗?我并没有完全理解monad是endofunctor而不仅仅是functor的部分.
考虑这个myFilter函数,它接受泛型参数并根据谓词过滤数组.这与filter()Swift提供的功能相同.
func myFilter<T>(source: [T], predicate:(T) -> Bool) -> [T] {
var result = [T]()
for i in source {
if predicate(i) {
result.append(i)
}
}
return result
}
Run Code Online (Sandbox Code Playgroud)
这有什么不同,
func myFilter(source: [AnyObject], predicate:(AnyObject) -> Bool) -> [AnyObject] {
var result = [AnyObject]()
for i in source {
if predicate(i) {
result.append(i)
}
}
return result
}
Run Code Online (Sandbox Code Playgroud)
即使在后一个例子中,我们也不是达到了泛型的地步吗?