相关疑难解决方法(0)

Haskell初学者指南?

一段时间以来,我一直在寻找一个体面的Haskell指南,但是找不到一个看起来很有趣的内容和/或有意义的指南.

几年前我曾经接触过Haskell,但我记不起来了.我记得"啊哈!" - 当我终于得到它时感觉不可思议,玩起来真的很有趣,所以我想重新发现丢失的Haskell艺术.

我熟悉Ruby及其函数式编程技巧,所以我觉得我并非完全处于黑暗中.有链接吗?

haskell functional-programming

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

简单的haskell单元测试

我想通过99个Haskell问题,我想专注于解决方案,但需要测试.如果我将第一个问题的解决方案作为3行.hs文件,

myLast :: [a] -> a
myLast [x] = x
myLast (_:xs) = myLast xs
Run Code Online (Sandbox Code Playgroud)

我可以添加的最小代码量是多少,以便我可以在线添加测试并运行它们runhaskell

haskell unit-testing

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

Haskell与现实世界中的程序编程

这些天我正在认真学习函数式编程.

虽然我对Haskell以及它似乎提供的可能性感到非常兴奋,但我现在也可以看到它需要一段时间来学习.在如何学习Haskell的SO问题中,一个答案表明,实际上"掌握"它需要几个月甚至几年.

现在,我知道C,PHP,一些面向对象的东西等等.并且被告知Haskell在"现实世界"中没有被广泛使用,我会更好地提高我所熟悉的常规语言的技能吗?哈斯克尔值得奋斗吗?

在这个问题上为什么人们认为函数式编程会得出结论似乎是函数式编程将"流行".但是程序编程肯定会保持领先,对吧?

编辑:keparo很好地澄清了我的问题:与过程语言相反,研究Haskell和函数式编程范例对我来说是否有价值?

haskell functional-programming imperative-programming

44
推荐指数
8
解决办法
1万
查看次数

Scala中的真实世界函数式编程

SOOOO ...

Semigroups,Monoids,Monads,Functors,Lenses,Catamorphisms,Anamorphisms,Arrows ......这些听起来都很好,经过一两次(或十次)运动后,你可以掌握它们的本质.而且Scalaz,你可以免费获得它们......

然而,就现实世界的编程而言,我发现自己很难找到这些概念的用法.是的,当然我总是在网上找到一个人在Scala上使用Monads for IO或Lenses,但是......仍然......

我试图找到的是模式的"规定"线.类似的事情:"在这里,你试图解决这个问题,解决这个问题的一个好方法是用这种方式使用镜头!"

建议?


更新:沿着这些方面,有一两本书的内容会很棒(感谢Paul):Java核心库中的GoF设计模式示例

design-patterns functional-programming scala scalaz

35
推荐指数
4
解决办法
3816
查看次数

在monads之后学习Haskell的下一步是什么?

我一直在逐渐学习Haskell,甚至觉得我有一堆monad.然而,仍然有很多我不太理解的异国情调,比如Arrows,Applicative等.虽然我从Haskell代码中找到了点点滴滴,但我找到了一个真正解释的教程会很好他们完全.(似乎有几十个关于monad的教程......但是之后一切似乎都完成了!)

haskell

33
推荐指数
2
解决办法
3072
查看次数

在Haskell中查找列表中的元素索引?

我在Haskell中有一个函数,它从列表中找到取幂的最大值:

prob99 = maximum $ map (\xs -> (head xs)^(head (tail xs))) numbers
Run Code Online (Sandbox Code Playgroud)

我需要找到的是最终值在结果列表中的位置.我该怎么做?

编辑:我找到了一个像这样的解决方案:

n = [[519432,525806],[632382,518061]....
prob99b [a,b] = b* (log a)
answer = snd $ maximum (zip  (map prob99b n) [1..])
Run Code Online (Sandbox Code Playgroud)

indexing haskell list

28
推荐指数
3
解决办法
4万
查看次数

Haskell中最重要的抽象是什么?单子?Applicatives?

我想知道我应该知道哪些库,函数和概念以及如何使用.Monad和那里的函数是典型的例子,但是在编码中还有其他好的原语,比如Arrows,Applicative,......他们是谁?

顺便说一下,我想在Haskell世界中了解最新情况,学习新概念,这是怎么做到的?

(最初的标题是:"用于编码的库原语",但这已被更改)

haskell haskell-platform

20
推荐指数
3
解决办法
3183
查看次数

为了掌握Haskell,您投入了多少时间?

我知道这个问题可能听起来很傻,但我正在学习(至少尝试)Haskell大约4天.我已经读完了http://learnyouahaskell.com/,现在我正在投入时间:Haskell的逻辑,数学和编程之路,事情变得非常复杂.我没有函数式编程的经验,只有一些关于Lisp的基础知识.

即使我理解这些概念,当我必须编写一段不那么基本的代码时,总会有一个黑暗,我无法在脑海中建立一个计划.似乎有很多方法可以完成某项任务,但我无法表达自己.

经过4天的python,我可以编写复杂的脚本(不是'pythonic',但它们确实有效).在哈斯克尔呆了4天后,我......几乎是空白.

关于如何提高我的功能技能的任何建议?你完全掌握Haskell需要多长时间?

haskell functional-programming

16
推荐指数
1
解决办法
2695
查看次数

学习Haskell有哪些好的中间问题和项目?

我刚刚开始潜入Real World Haskell,这本书提供了一些很好的练习练习.

但是,我想对人们已经解决的具体问题或者他们已经完成的项目提出一些建议,这些建议确实帮助他们更好地理解了语言及其功能.我可以抛出什么样的东西真的会挑战我?

我对该语言有一定程度的理解,之前没有其他功能语言的经验; Haskell是我第一次跳进这个舞台.

haskell

12
推荐指数
2
解决办法
2159
查看次数

为什么sum和xy在Haskell中的类型(Num a)=> a - > a - > a?

我一直在阅读关于Haskell的内容,我很难理解如何用这种语言处理函数定义.

假设我正在定义一个sum函数:

let sum x y = x + y
Run Code Online (Sandbox Code Playgroud)

如果我查询Haskell的类型

:t sum
Run Code Online (Sandbox Code Playgroud)

我明白了

sum :: (Num a) => a -> a -> a
Run Code Online (Sandbox Code Playgroud)
  1. 这对=>运营商意味着什么?它与lambda表达式有什么关系吗?这就是=>用C#表示运算符后面的内容是一个的信号.
  2. 什么a -> a -> a意思?通过对我一直在尝试的许多不同函数进行眼睛检查,看起来最初a -> a是参数,而final -> a是sum函数的结果.如果这是正确的,为什么不这样(a, a) -> a,这看起来更直观?

haskell functional-programming type-inference typeclass

10
推荐指数
3
解决办法
1874
查看次数