关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion推荐给Haskell程序员的F#教程是什么?F#似乎从Haskell那里借鉴了很多,但也有一些难以编写的小陷阱。通常我需要演练F#,它不会解释可变数据和不可变数据之间的区别(Haskell在这方面要严格得多)等。我懂一点C#,所以我或多
在花了很多时间阅读和思考之后,我想我终于掌握了monad是什么、它们如何工作以及它们有什么用处。我的主要目标是弄清楚monad是否可以应用于我在C#中的日常工作。当我开始学习monad时,我的印象是它们很神奇,它们以某种方式使IO和其他非纯函数变得纯。我理解monad对于.Net中的LINQ之类的东西的重要性,并且Maybe对于处理不返回有效值的函数非常有用。我也很欣赏限制代码状态和隔离外部依赖的需要,我希望monad也能帮助解决这些问题。但我最终得出结论,用于IO和处理状态的monad是Haskell的必需品,因为Haskell没有其他方法可以做到这一点(否则,你无法保证顺序,并
在Haskell中,IterateebasedI/O看起来很吸引人。Iteratees是一种可组合的、安全的、快速的I/O方法,其灵感来自于函数式语言中的“fold”又名“reduce”函数。基本上,如果你有一个遍历,想法是将遍历状态封装到一个所谓的“枚举器”中,它调用“iteratee”,它又是一个函数,返回一个值或请求更多数据以及继续要调用的枚举器。因此只有枚举器知道遍历的状态,而迭代器知道如何处理数据并从中构建值。它的好处是迭代器是自动可组合的,其中一个迭代器的输出被馈送到另一个迭代器以形成更大的迭代器。那么,两个问题:这个概念在其他语言中是否有意义,比如普通的面向对象语言,或者
在我的Yesod项目中,我有以下路线:/api/hide/thread/#Text/#IntApiHideThreadRGET我想用javascript在客户端请求它:functionhideThreadCompletely(threadId,board){$.getJSON("/api/hide/thread/"+board+"/"+threadId,function(data){$('#thread-'+threadId).hide();});}但我不能使用@{ApiHideTHreadR}因为Yesod需要它在编译时的参数。如果我希望APIURL看起来像api/board/1/1
我一直在阅读FunctionalReactiveProgramming,虽然我没有在任何语言中广泛使用monad,但我情不自禁地在FRP设计中无处不在看到它们。Thisquestion'sanswers对什么是函数式响应式(Reactive)编程有一些精彩的描述,我不会在这里重复。基本上,FRP会在随时间变化的值之间建立关系。那么这不能用单子(monad)表示吗?将需要随时间修改的值的代码封装在monad中,将其称为Signal,然后像这样使用这些信号(为简单起见,使用Haskelldo-notation)。domx>=liftMsin--dosomestuffwiththeseval
不久前,我在StackOverflow上发布了一个问题,显示nativeimplementationofreduceRightinJavaScriptisannoying.因此,我创建了一个Haskell风格的foldr函数作为补救措施:functionfoldr(array,callback,initial){varlength=array.length;if(arguments.length0)varresult=array[--length];elsethrownewError("Reduceofemptyarraywithnoinitialvalue");}elsevarres
我成功地使用Yesod编写了一个小应用程序。现在我正处于想要为其添加更好的交互的阶段,我想使用AngularJS来实现。据我所知,Yesod对AngularJS的支持仍处于试验阶段。此外,到目前为止我找到的文档对我来说是相当难以访问的。我没有掌握所有Yesod概念。所以我想知道,集成AngularJS和Yesod框架的可能方法有哪些。我想做的是:使用AngularJS编写前端。使用Yesod开发网络服务。通过GET和POSThttp请求连接前端和网络服务。信息可以通过输入表单的方式发送到服务器(以这种方式利用Yesod的一些能力),信息可以通过JSON对象的方式发送到前端。理想情况下,
有没有一种相当快速的方法可以从Javascript中的数字中提取指数和尾数?据我所知,在Javascript中无法获取数字背后的位,这让我觉得我正在研究因式分解问题:找到m和n这样2^n*m=k对于给定的k。由于整数因式分解属于NP,我只能假设这将是一个相当困难的问题。我正在实现一个用于生成Javascript的GHC插件,并且需要实现decodeFloat_Int#和decodeDouble_2Int#primitiveoperations;我想我可以重写基础库的部分,这些部分使用操作来做他们正在以其他方式做的事情(这不应该太难,因为所有数字类型都以Number作为它们的表示,)但是
我正在实现AlgorithmW(Hindley-Milnertypesystem)在JavaScript中:实现上述规则的函数是typecheck,它有如下签名:typecheck::(Context,Expr)->Monotype定义如下:functiontypecheck(context,expression){switch(expression.type){case"Var":varname=expression.name;vartype=context[name];returninst(type);case"App":varfun=typecheck(context,expre
我正在尝试在Java中定义类似于Haskell的仿函数的类。特此,仿函数定义为:/***Programminglanguagesallowonly(justsimplyenough)endofunctor,thatarefunctorsfromandtothesamecategory.*Inthiscase,thecategoryistheoneofthedatatypes(inhereType,inordertomakeitmoreclear)*/publicinterfaceEndoFunctorextendsType{/***Thebasicimplementationforan