首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

在学习了monads之后,下一步学习Haskell的下一步可能是:

  1. 学习高级Haskell概念:这包括了解更多的高级Haskell概念,如类型类、隐式参数、多参数类型等。
  2. 学习Haskell的设计模式:了解在Haskell中使用的设计模式,如Monad Transformers、ReaderT、StateT等。
  3. 学习Haskell的库:Haskell拥有丰富的库,可以学习如何使用这些库来解决实际问题,如使用Parsec库解析文本、使用Yesod框架开发Web应用等。
  4. 学习并行和并发:了解Haskell中的并行和并发概念,如使用MVar、STM等来实现并发编程。
  5. 学习优化技巧:了解如何优化Haskell代码,如使用Bang模式、使用INLINE pragma等。
  6. 学习GHC扩展:了解GHC提供的扩展,如Template Haskell、QuasiQuotes等。
  7. 学习Haskell的生态系统:了解Haskell的生态系统,如Cabal、Stack等构建工具、Hackage等包管理器等。

推荐的腾讯云相关产品和产品介绍链接地址:

  1. 腾讯云Serverless云函数:腾讯云Serverless云函数是一种按需付费的计算服务,可以让用户无需担心服务器和运维工作,专注于编写代码。链接地址:https://cloud.tencent.com/product/scf
  2. 腾讯云容器服务:腾讯云容器服务是一种弹性的、可扩展的容器解决方案,可以帮助用户快速部署、运行和管理容器。链接地址:https://cloud.tencent.com/product/ccs
  3. 腾讯云对象存储:腾讯云对象存储是一种可靠、安全、高效的云存储服务,可以存储任意类型的非结构化数据。链接地址:https://cloud.tencent.com/product/cos
  4. 腾讯云CDN:腾讯云CDN是一种内容分发网络服务,可以帮助用户加速全球访问速度,降低服务器负载。链接地址:https://cloud.tencent.com/product/cdn
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Kotlin版图解Functor、Applicative与Monad

本文是从 Haskell 版 Functors, Applicatives, And Monads In Pictures 翻译而来 Kotlin 版。...fmap 向我们展示了它成果。 但是 fmap 怎么知道如何应用该函数呢? 究竟什么是 Functor 呢? Haskell 中 Functor 是一个类型类。 其定义如下: ?...Applicative 定义了 (*)( Haskell 中是 ),它知道如何将一个 包装在上下文中 函数应用到一个 包装在上下文中 值上: ?...这究竟是什么意思,这个函数为什么包装在 JUST 中?...“大人物可以使用具有任意数量参数函数,”它说。 “装备了 ($) 与 (*) 之后,我可以接受具有任意个数未包装值参数任意函数。 然后我传给它所有已包装值,而我会得到一个已包装值出来!

1.1K20

函子到底是什么?ApplicativeMonad

有一个特殊幺元,能够和任何元素组合,导致结果是不改变这些元素。 函子到底是什么? 一个函子Functor是任意类型,这些类型定义了如何应用 map (fmap in Haskell) 。...image.png fmap输入参数是a->b函数,我们这个案例中是(+3),然后定义一个函子Functor,这里是HaskellJust 2,最后返回一个新函子,我们案例中,使用Haskell...澄清了函子含义,那么如何在程序中表达它? Haskell中,函子是在其上可以map over东西。稍微有一点函数式编程经验,一定会想到数组(Array)或者列表(List),确实如此。...Haskell这类强类型语言中,我们甚至可以组装自己Tuple Monad。...参考链接: Translation from Haskell to JavaScript of selected portions of the best introduction to monads

4.1K30

学习世界模型,通向AI下一步:Yann LeCunIJCAI 2018上演讲

之后,人们就对神经网络研究失去了兴趣。一方面是准确率原因,还因为很多领域当时没有足够多数据来训练学习系统。...下图是 21 世纪初加入 NYU 之后用模仿学习研究。这个研究激发了 DARPA LAGR 项目。 ?...为什么要强调记忆建模重要性呢?强化学习中,无模型强化学习训练需要大量尝试才能学会一项任务。 ?...接下来,LeCun 解释了突破强化学习现状解决方法:自监督学习,它能通过输入某一部分预测其它部分。空间层面上包括图像补全、图像变换等,时间层面上包括时序数据预测、视频帧预测等。 ?...Hinton 自监督学习领域探索了多年,LeCun 之前一直持怀疑态度,现在终于认可了这个方向。 ? 机器学习未来不会是监督学习,当然也不会纯粹是强化学习,它应该是包含了深度模块自监督学习

41720

如何更优雅使用 Java 8 函数式编程?

Java8中Stream和Optional给我们带来了函数式编程乐趣,但Java仍然缺少很多函数编程关键特性。 Lambda表达式、Optional和Stream只是函数式编程冰山一角。...这也导致了varvr和functionlajava这些类库出现,他们都源于Haskell这个纯函数式编程语言。...只要提供下一步运算所需函数,整个运算就会自动进行下去, Optional、Stream都是monad),比如,很多人经常会在还不需要时候就调用了Optional.get()和Stream.collect...,使得被提升函数具有Optional一个特性:如果一个参数是空,那么结果就是空。...numberProvider.getNumber(), numberProvider.getNumber()); } 原文:https://dzone.com/articles/lifting-functions-to-work-with-monads-in-java

1.3K20

消失编程语言

3、Haskell Haskell已经过去了最辉煌时光,这真是遗憾;许多程序员都希望他们知道如何在这个光辉函数式编程语言中编码。...该语言曾经是首选,因为许多人开始使用其本机monads和代数数据类型编写大型金融程序。 Haskell从Miranda、Clean、HOPE和其他一些语言借鉴了元素,具有很多优点。...与更相关、更灵活语言(如Go和Python)相比,Haskell也遭受了竞争压力,这两种语言从2000年代开始挑战Haskell,以其强大和实用性继续挑战该语言。...毕竟,Go编程之所以重新TIOBE指数中占据一席之地是有原因。...9、Pascal Pascal由Niklaus Wirth于1970年创建,捕捉了ALGOL-60精髓。由于它是一种过程性语言,Pascal成为初学者程序员优秀学习工具。

17030

解决 JavaScript 中处理 null 和 undefined 麻烦事

撰写本文时,这两个都是第 3 阶段建议。也许将来你就可以使用它们了。 撰写本文时,可选链接是第 3 阶段建议。...函数式编程中,Either monad 是一种特殊抽象数据类型,它允许你附加两个不同代码路径:成功路径或失败路径。...换句话说,JavaScript 中数组可以填补 Haskell 等语言中 Maybe 角色。 什么是Maybe? Maybe 是一种特殊抽象数据类型,它封装了一个可选值。...这可能会改变集合长度。 Haskell 中,有一个函数maybe(类似 map)将一个函数应用于一个值。但是该值是可选,并封装在 Maybe 中。...当你调试中遇到 Maybe 数组时,不必问“这是什么奇怪类型?!”,它只是一个值数组或一个空数组,你已经看到过一百万遍了。

1.2K20

函数式编程很难,这正是你要学习原因

见鬼了,Haskell里,连分号都跟别人不一样。这并不是语法问题;Haskell和ML语言完全基于一种不同概念、一种新语言范式。...HaskellMonads是跟指针一样基础且强大概念(你很可能在不知道它叫什么情况下就已经使用过它们了)。...对我而言,我已经不惊奇于由于这样思维而阻止他们学习函数式语言现象;他们需要学习一种跟指针和递归一样基础新概念。他们需要有一种只有专业人员完成清晰商业目标时才具有的耐心和斗志。...没有一个清晰指导(比如由一个实用主义作者写一本好书),本来已经很困难学习任务变更加可怕。   这些叠加起来复杂因素导致了不出意外结果:很多人不情愿函数式编程学习中投入时间。...一个像软件技术这样日新月异产业里,我不认为这是正确判断。   眼见为实   学习一种函数式编程语言最显而易见好处是,你能学会这种类型语言中函数式概念。

99151

✨从代码复用讲起,专栏阶段性作结,聊聊?

专栏简介 作为一名 5 年经验 JavaScript 技能拥有者,笔者时常在想,它核心是什么?后来我确信答案是:闭包和异步。...只不过基础阅读量偏低,几篇加起来还抵不了一篇口水文,原因可能有 3 点: 平台对新文章推送策略从 9 月份之后发生变化,转变为更侧重于推送旧好文章; 专栏内容相对较干,更多人来社区看文章或图一乐、...值不变性就为了消除“状态”,函数式编程就强调“无状态”。 大型项目中,每当声明一个新变量,多处去维护这个状态,这一定是一件容易导致混乱事情。...说了这么多,归结一句话: 想要优雅复用代码,务必学习函数式编程思想。你可能已经在用它了,而不自知。...Number) 改造成 (Number -> (Number,String)) 以上就是最简单 monad, Haskell 标准库中,它被称为 Writermonad 说白了,就是把函数和值都改造成一个可组合形式

58510

【DB笔试面试427】Oracle中,数据文件OFFLINE之后必须要做一件事是什么

Q 题目 Oracle中,数据文件OFFLINE之后必须要做一件事是什么?...A 答案 数据文件OFFLINE之后必须要做一件事就是立刻执行一次RECOVER操作,这样无论过了多久之后ONLINE该数据文件时候就不需要执行RECOVER操作了。...SYS@lhrdb> 实验结束,根据实验过程可以知道,如果执行了数据文件OFFLINE操作,那么需要接着执行一次RECOVER操作。...这样做好处是,以后数据库维护中,随时想将数据文件ONLINE都可以,而不用担心归档文件是否存在情况了。...& 说明: 有关本小节内容可以参考我BLOG:http://blog.itpub.net/26736162/viewspace-2125336/

65410

成为函数式编程工程师四年,我为什么说它既“流氓”又“可爱”

如今,没有哪种新发布编程语言不支持“函数式编程”,甚至保守温和、经过企业认证 Java 也开始有了 lambdas 甚至 monads。 是的,这是一个全新世界。 为什么转向函数式编程?...函数式编程“宗教信仰” 函数式编程(FP)光谱上,人们都落在了两个极端上。一个极端,FP 是一种能够丰富指令式编程方式(例如,将一个轻量级回调传递给一个函数,或将一个块传递给一个循环)。...我答案是:不一定。 “流氓”函数式编程 为了说明我观点,我决定在函数式编程语言 Haskell 中实现快速排序。...按照其主页上描述,Haskell 是一种高级、纯粹函数式编程语言,目前也是我最喜欢编程语言之一。 你几乎不可能在其他语言中得到比 Haskell 更多“FP”基因了。...我们现在有两个纯粹函数式程序,都是用同样语言编写,但两者之间却有天壤之别。 这是什么原因呢?

28520

当我们谈论Monad时候(二)

那么Appliacative是什么呢?Applicative是对“应用”抽象,它允许容器中“存放”一个函数。 还是用例子来说明。上一篇文章最后,我举了一个多参函数例子。...因此2014年,Haskell社区提出了AMP将这些问题都做了统一,之后由GHC 7.10对相关提议做出了实现。...不过,这也只解释了为什么如今HaskellApplicative和Monad是这种状态。那么,是什么原因使Haskell冒着把标准库搞乱风险也要引入Applicative呢?...调用形式上看,>>=左侧是之前运算结果,而右侧通过λ参数将这个结果引入了进来,以供之后使用。但是左侧与右侧并没有联系,因此之后运算是无法依赖于之前运算。...至于这个定律是什么讲原理文章中我会详细说明。

76610

Scala学习路线

这四年多,一直断断续续学习,中间多次放弃又多次拿起,就像是一本厚书,每次都是从头看了几十页便放下,多次之后,看到还是前几十页。...我之前学习完全是自学,靠自己摸索,没有人指导情况下,走了很多弯路。...当我们基本掌握上面那些知识点之后,也许一些基本Scala开发还能勉强胜任,但是我们很快就会发现很多别人写Scala代码我们看不懂,别人讨论Scala知识我们也看不懂,我们只是把Scala当Java...甚至有可能为了学习scala而中途专门去学习另一门函数式语言(如haskell, lisp等),掌握了那些概念后,再回来看scala。...来到我们公司之后,居然有两次参与Scala项目的机会。发现我们客户居然都喜欢用Scala,西安办公室里也有越来越多的人主动或者被迫学习Scala。

2.3K50

2020年,6种将死编程语言!

事实上,甚至是它创造者也不得不承认这种编程语言是有问题。经过完整地改造之后,现在开发工作开始倾向于使用Perl6,这个大概是2000年时候。至于Perl?俨然已经销声匿迹了!...不过,Haskell RedMonk 语言排行榜上表现一直都很平淡,这表明没有更多开发者关注这门语言。它要死了,还是已经死了?...另外一种声音: 以前Haskell 用户调查 中,我们可以看到下面五大亮点: 1.Haskell 社区已经开始更加多样化和专注于项目,虽然 Haskell 一直以来以“仅限科学家”著称。...刚开始学习或许有点难,但是一旦上手,你绝对会对它爱不释手。C#很快就成为了微软旗舰编程语言。现在的话,软件行业中,有很多很多需要C#工作岗位,不少都是高薪聘用。...那时大概有数以百万计pc AIR应用被开发出来,只是后来Twitter2011年买了TweetDeck之后,又改写本地代码取代了AIR。于是乎,AIR辉煌就到此为止。

1.4K20

大四学生用GPT-2开发补代码神器,支持五种编译器:让程序员专注解决问题

成功安装之后工具栏PreferencesPackage setting下,会出现TabNine。安装完之后,文摘菌表示:嗯,真香!...TabNineTwitter上收到了各地程序员打来“电话”: ? 参考译文:惊人!!基于深度学习NLP技术将彻底改变我们编程方式。...IEEE Spectrum: 是什么给了你开发Deep TabNine想法?...虽然它确实对文档和语法有一些了解,但是所有这些都是通过给它编码和使用它来预测下一步输入来自然地学习。 IEEE Spectrum: 开发 Deep TabNine你遇到了什么困难?...IEEE Spectrum: Deep TabNine 下一步是什么? Jacob Jackson: 机器学习中,你可以不断改进模型,改进数据,(提供)更好建议。

68140

英语很好是怎么自学前端

我从 2017 年年初开始高强度学习,去年十一假期之后开始我第一份前端工作,到今天刚好工作一年时间。接下来我将我学习路径,学习方法,和学习资源整理分享出来,希望可以帮到更多人。...我知道很多专家说保健品不靠谱,但我吃了这个真的睡更香了,用 Sleep Cycle 监测到深度睡眠增加了。2. 下午 2 点之后不喝咖啡,晚上 8 点之后不看电子屏幕。3....我比较幸运,一开始学编程时候刚好碰到 Eric 开始 Medium 上连载函数式编程教程。我在学了三个月 JS 之后,就遇到了一个全新编程范式,并且被说服了。...我弄懂了一些 FP 概念之后,再回头看这篇入门文章,也收获了很多,更清楚了 FP 每一步为什么要那样做。...此文不会扔概念,而是用普通代码来解决问题,一步步地,你不知不觉中就懂了 Functors, Applicative Functors 和 Monads。只要你懂普通 JS 你就能懂本文代码。

2.2K20

精通JavaScript面试之什么是函数式编程?

仅仅在几年之前,极少数JavaScript程序员听说过函数式编程是什么,但是在过去三年里我看到每个大型应用代码库中都使用了大量函数式编程想法。...如果你开始google搜索函数式编程术语,你将很快撞到一堵学术术语墙上,对初学者来说这太吓人了。说它有学习曲线是严重低估说法(the5fire注,意译:它学习曲线相当高)。...相反,可变对象是指一个对象创建之后依然可以被修改。 不可变性是函数式编程核心概念,因为如果没有它,你程序中数据流是有损耗。状态历史被丢弃,并且奇怪bug会蔓延在你软件中。...可以看这篇文章 《The Dao of Immutability》 了解更多不可变性重要性。 JavaScript中,能够区分常量和不可变性很重要。常量创建变量绑定在创建之后不可以被重新赋值。...Haskell和其他函数式编程语言经常使用monads把纯函数和副作用进行隔离和封装。关于monads的话题足以写一本书了,我们稍后再来说这个话题。

85050

如何掌握程序语言

看到了它们,就可以很短时间之内就能学会并且开始使用任何新语言,而不是花费很多功夫去学习一个又一个语言。...所以学习逻辑式语言最好是从函数式语言开始,在理解了递归,模式匹配等基本函数式编程技巧之后再来看 Prolog,就会发现逻辑式编程简单了很多。 从何开始 可是学习编程总要从某种语言开始。...就我观点,首先可以从 Scheme 入门,然后学习一些 Haskell (但不是全部),之后其它也就触类旁通了。你并不需要学习它们所有细枝末节,而只需要学习最精华部分。...你会发现,即使实际工作中必须使用面向对象语言,也可以避免面向对象思维方式,因为面向对象思想带来大部分是混乱和冗余。 深入本质和底层 那么是不是完全不需要学习底层呢?当然不是。...但是一开头就学习底层硬件,就会被纷繁复杂硬件设计蒙蔽头脑,看不清楚本质上简单原理。在学会高层语言之后,可以进行“语义学”和“编译原理”学习

1.1K90
领券