几天前,袁英杰在微信中推荐《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,SICP)。 他的推荐词说: SICP是一本无论如何都应该去仔细阅读的书。读完它,如果你不是变成了fp的狂热爱好者,而是除了理解fp之外,也更加深刻的理解了OO,logical programming,以及认识到用任何一种方法描述世界都有其局限性,从而放弃对单种范式的狂热(但过程式是个例外,你需要从这个泥潭中越早跳出来越好),那么你才没有白读这本书。 其实
去年的秋季学期还没开始的时候,我就在考虑技术兴趣讨论班计划——让对某方面技术感兴趣的同学聚集在一起,定期轮流做一些分享。一晃眼今年都快过完了,想着把去年一年的经过和想法整理一下,如果将来有人还想办一办类似的活动的话,这就算作是宝贵的经验吧。
《SICP》的全名是《Structure and Interpretation of Computer Programs》,中文译名《计算机程序的构造与解释》。这是MIT的一本经典教材,一本编程世界几乎人尽皆知的魔法书。我看了很久,还没有看完。。。但是每次看都感觉有收获,掩卷而思都会有点心潮澎湃,今天尤甚,在火车站等车的时候看得入神差点没赶上车,囧。
我有幸在我还是学生的时候见到了了不起的 Alan Perlis,并和他交谈了几次。他和我共同深爱和尊重两种非常不同的编程语言:Lisp 和 APL。跟随他的脚步是一项艰巨的任务,尽管他开辟了一条优秀的道路。尽管如此,我想重新审视他在这本书的原始前言中所做的一条评论(请阅读他的前言,它紧随在这个前言之后,然后再完成这个前言)。是否真的比起有 10 个函数作用于 10 个数据结构,有 100 个函数作用于一个数据结构更好?
ZeroDivisionError: integer division ormodulo by zero
• Structure and Interpretation of Computer Programs (SICP)[1]
1986年7月Harold Abelson和Gerald Jay Sussman两位作者在给Hewlett-Packard公司员工培训时录制了《计算机程序的构造和解释》系列公开课,几十年过去了,这份公开课威力依旧。
前几天在公众号调查了下“对自己编程影响最大的一本书是什么”,答案基本不出我所预料:SICP、HTDP、 K & R C、Hackers and Painters 占据上风。还有几位说是谭老师的《C语言程序设计》,仔细想想,也算是入门必读书籍,说影响最大也不为过。
本期节目请来了一位特别嘉宾 Kathy,她不仅仅是一名四年经验的 Emacs 拥趸,而且还是一位留学英国的经济学在读博士。
本期嘉宾是使用十二年的 Emacs 资深用户张泽鹏(网络ID:redraiment)。得益于 Emacs 其无与伦比的“开放性”,嘉宾使用它打造出符合自己理念的高效开发环境。Emacs 对于嘉宾来说,即使生产力工具,也是“玩具”,在“玩”的过程中,来学习新技能。使用 Emacs 多年后,万物可编辑的思维给嘉宾的日常工作带来很多启发,总结出一篇与系统设计的文章:编辑器思维与系统设计思想[2],这其中的精华都会在节目中聊到,近一个小时的节目,精彩不容错过。
我不知道你们最近有没有刷 GitHub,如果有的话,你应该会发现一个项目特别亮眼,这个项目名为:TeachYourselfCS-CN。
对于没有计算机科学基础知识的程序员或初学者来说 一上来就看龙书 虎书是行不通的 全是理论知识 看得想睡觉 我还试过看网易云大学计算机专业的编译原理课程 也是看得一头雾水 看到80多讲就看不下去了
为了获得留言功能,更好地与大家进行交流,我对原微信公众号进行了迁移。今后,大家可以直接在文章尾部给我留言,反馈文章的错误或者进行技术问题交流。
1 前言 如今编程成为了一个越来越重要的「技能」: 作为设计师,懂一些编程可能会帮你更好地理解自己的工作内容; 作为创业者,技术创始人的身份则会让你的很多工作显得更容易。 而作为刚入门的新手,面对眼前
最近在B站里找到了一门神课,它是伯克利的CS61A,也是伯克利计算机科学专业的核心必修课。号称是CS必学,我上了几节课,发现内容的确非常高,比当年我在学校上的计算机概论那些不知道高到哪里去了。
引言 SCIP(Structure and Interpretation of Computer Programs)[1]是MIT自1984年起的编程入门教程,尽管最近他们用Python的课程取代了Lisp语言,但是随着工业界越来越多的应用函数编程语言,如Clojure、Scala、Racket,以及软件开发使用并发的趋势(见文章[2]),重读SCIP是很有意义的。 SCIP分五章:构造过程抽象,构造数据抽象,模块化、对象和状态(涉及并发),源语言抽象,寄存器机器里的计算(编译器如何工作) 环境 OS
国家统计局的数据显示,2016 年信息传输、软件和信息技术服务业年平均工资为 122478 元,首超金融行业,并于 2017 年再次夺魁。
麻省理工学院(后面简称MIT)的计算机专业由EECS系开设,EECS系隶属于MIT的工学院,这点和UC Berkeley一样(在UC Berkeley EECS系是如何培养计算机学生的有过介绍)。在EECS系的官网上,MIT这样介绍自己: EECS系无处不在,我们把科学的严谨、工程的力量和探索发现的兴奋结合在一起。我们的学生在改变世界。注意这句我们的学生在改变世界,敢说自己的学生改变世界,全世界恐怕没几所高校,然而MIT EECS却有这个自信。下面我们一起探索MIT的自信来自哪里,也为CS专业或想转行CS的小伙伴提供可借鉴的方法和参考。
昨天晚上进行了第一次直播,效果不是很好,一方面可能是准备不足,ppt 内容上下文衔接不够;另一方面是没有定位好受众人群,对于没有看过 SICP 的同学来说可能不知道我再说什么,离我的初衷相差甚远😭 不过我觉得也还行,毕竟走出了第一步,算是正式开始了 Lisp 直播道路!下面会以 Clojure 为主,从环境搭建开始,到语法,再带着大家看几个 Clojure 写的开源项目,争取让大家都用起来!老是堆砌一些概念感觉挺虚的,还是要以代码为主。 📷 PPT 下载地址:https://github.com/jiaca
这时候,如果我们运行 go mod tidy,肯定会报错,因为我们的 mypkg 包根本没有提交到 github 上,肯定找不到。
大家好,猫头虎博主来了!🐾 今天我们将一起探讨Go 1.18 Beta 2的新鲜出炉的更新。这个版本继续增强对泛型、fuzzing以及全新的Go工作区模式的支持。一起来看看这些激动人心的进展吧!🌟
python作为一个现代语言,结合着OOP和FP的多种性质,不同于其他OOP语言,python中的函数具有自己的环境,让我们从这里入手,看看类在FP中可以如何实现.
大家好,猫头虎博主再次出击!🐾 今天我们要一起探索Go 1.18的两个崭新教程。随着Go 1.18的即将发布,这些教程将帮助我们理解和掌握泛型和fuzzing——Go的两大新概念。🚀 让我们一起跳入Go的新世界,探索这些激动人心的新特性吧!
嗨,猫头虎博主来了!🐱🔍 今天,我们要聚焦Go语言的一个历史性时刻——Go 1.18的发布!这个版本不仅引入了长期期待的泛型支持,还包含了集成到标准工具链中的fuzzing功能,以及全新的Go工作区模式。这确实是Go语言发展过程中的一个巨大飞跃。让我们一起探索Go 1.18的所有细节吧!🚀
前段时间学了下 Haskell,看完了《Haskell 趣学指南》,刷了一些题,《Real World Haskell》正在看。因为早先看过《SICP》,有点 FP 的基础,平常写 Swift 也喜欢用些 FP 的技巧,所以暂时没有什么特别颠覆性的感觉。最大的感受是,以前对 Functor、Applicative 和 Monad 的理解太片面了。
讲者:Jeremy Rickard,1.18版本增强负责人;Jorge Alacron,1.18版本发布负责人;Karen Chu,1.18版本沟通负责人
本地Golang升级到1.18后,发现原本写的一些代码在Goland中出现了一些红色的波浪线,将鼠标移到错误提示上,有如下的显示:
SICP 2.15 是接着 题目 2.14 的, 题目 2.14中提到了Alyssa设计的区间计算模块在并联电阻计算时会出现故障,这个问题是Lem发现的。
大家好,猫头虎博主在此!🐯 今天我们要聊聊Go语言的最新动态:Go 1.18 Beta 1的发布。这不仅仅是一个普通的更新,而是Go自版本1以来最显著的变化——泛型的引入!这里,我们将深入探索泛型的世界,看看它如何给Go带来革命性的变化。让我们一起在Go的海洋中潜水吧!🌊
持续关注 「K8S 生态周报」 ( https://zhuanlan.zhihu.com/container )的小伙伴们,在每周的上游进展中,应该已经了解到了大多数新的特性和修复,这里来一并总结下。
有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。
拓扑管理器功能是 1.18 版中 Kubernetes 的 beta 功能,它使 CPU 和 设备(例如SR-IOV VF)的 NUMA 对齐方式能够使您的工作负载在针对低延迟而优化的环境中运行。在引入拓扑管理器之前,CPU和设备管理器将做出彼此独立的资源分配决策。这可能会导致在多套接字( multi-socket )系统上分配不良,从而导致关键型应用程序的性能下降。
🐾 大家好,我是猫头虎博主,今天我们来深入探索Go 1.18新加入的一项闪亮特性——工作空间模式。这个功能让我们能同时处理多个模块,而不必为每个模块编辑go.mod文件。如果你对Go生态感兴趣,那就跟我一起深入了解这个话题吧!🌟
Go 源码包官网下载地址为:https://golang.org/dl/(因为你知道的原因,可能无法访问)
再续前文,在面向对象层面,Python做到了超神:万物皆为对象,而Ruby,则干脆就是神:飞花摘叶皆可对象。二者都提供对象类操作以及继承的方式为面向对象张目,但Go lang显然有一些特立独行,因为它没有传统的类,也没有继承,取而代之的是结构和组合的方式,也就是结构体(struct)的方式来组织代码,达到类似类的效果。
本文首发于 https://robberphex.com/go-generics-maps-slices/
go1.18 实现了《类型参数提案》描述的范型特性,并且保持了对老版本的向下兼容
《计算机程序的结构和解释》(在业界也称为SICP)是一本经典的书,它教编程的基础知识。
今天,我们高兴地宣布Kubernetes 1.18正式与大家见面,这也是我们2020年以来进行的首次版本发布!Kubernetes 1.18中包含38项功能增强,其中15项为稳定版功能、11项beta版功能以及12项alpha版功能。
「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s 生态」 ( https://zhuanlan.zhihu.com/container )。
如果你写过 javascript,应该听说过变量提升(hoisting),如果你自诩“Life is short, I use Python”,那么多多少少会用过global、nonlocal这两个关键字。无论新手还是老手,遇到这些时都会觉得很别扭,稍不留神就会出现意想不到的 bug,如果你仔细观察就会发现,它们其实是一个问题:变量作用域的问题。
我们很高兴地宣布Kubernetes 1.18的发布,这是我们2020年的第一个版本!Kubernetes 1.18包含38项功能增强:15个稳定版,11个beta版,12个alpha版。
依赖冲突原因 lombok1.16.X与1.18.X存在@Data注解自动编译生成的hashCode方法与equals方法存在符号无法识别问题。当本身项目引入的Lombok版本与第三方Jar包引入的Lombok版本不一致时会在编译时期产生找不到defaultdefaultdefault的错误 解决方案 升级所在项目1.16.X为1.18.X 修改引入的第三方jar包项目修改1.18.X为1.16.X 让第三方jar包项目去除Lombok依赖引用 所影响的项目修改@Data为@Setter和@Gette
今日洞见 文章作者、部分图片来自ThoughtWorks:仝键。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接
昨天,go 终于发布了 1.18 的 beta 版本, 带来了大家期待已久的泛型,抓紧时间康康能不能赶上热乎的。
Tutorial: Getting started with multi-module workspaces
前文再续,书接上回,前一篇:兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿儒,全平台(Sublime 4)Go lang开发环境搭建EP00 ,我们搭建起了Go lang1.18的开发运行环境,接着就可以运行第一个Go lang1.18程序了,让我们整装待发,开启Go lang1.18的处女航。
多元统计分析 中,交互作用是指某因素作用随其他因素水平的不同而不同,两因素同时存在是的作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。通俗来讲就是,当两个或多个因素同时作用于一个结局时,就可能产生交互作用,又称为效应修饰作用(effect modification)。当两个因素同时存在时,所导致的效应(A)不等于它们单独效应相加(B+C)时,则称因素之间存在交互作用。当A=B+C时称不存在交互效应;当A>B+C时称存在正交互作用,又称协同作用(Synergy)。 在一个回归模型中,我们想写的是
最近 Go 支持范型的新版本 1.18 已经发布了,那怎么在我们的电脑上安装和配置 Go 1.18 呢,以及假如我有一些非常老的都没有用 Go Modules 管理依赖的项目升级到 1.18 后能兼容吗,今天给大家一一解惑。
学习程序语言是每个程序员的必经之路。可是这个世界上有太多的程序语言,每一种都号称具有最新的“特性”。所以程序员的苦恼就在于总是需要学习各种稀奇古怪的语言,而且必须紧跟“潮流”,否则就怕被时代所淘汰。 作为一个程序语言的研究者,我深深的知道这种心理产生的根源。程序语言里面其实有着非常简单,永恒不变的原理。看到了它们,就可以在很短的时间之内就能学会并且开始使用任何新的语言,而不是花费很多功夫去学习一个又一个的语言。 对程序语言的各种误解 学习程序语言的人,经常会出现以下几种心理,以至于他们会觉得有学不完
领取专属 10元无门槛券
手把手带您无忧上云