#类型

2021-2-17 18:35
类型检查是使用某种编程语言编写给定程序并确定所有变量和表达式是否具有正确类型的过程,即将字符串分配给字符串,算术表达式仅包含数字等。某些语言还提供类型推断,任务分配编译器的任务是自己找出正确的类型。根据语言的功能,类型检查和类型推断问题的范围从琐碎的到不确定的。 如果对于任何输入我们都可以计算输入是否可......
Functorio(bartoszmilewski.com)
2021-2-17 18:32
您可能已经听说过人们说函数式编程更具学术性,而实际的工程则以命令式进行。我将向您展示真正的工程是可行的,并且我将使用由工程师为工程师设计的计算机游戏来说明这一点。这是一个名为Factorio的模拟游戏,在其中您将获得探索,建立处理它们的工厂,创建越来越复杂的系统的资源,直到最终能够发射可能将您带离荒凉星球的太空船。如......
2021-1-28 22:10
您可能听说过,TypeScript在过去几年中一直席卷Web开发领域,带来了静态类型。我相信,在Python世界中,同样的事情开始发生,在这种世界中,越来越多地使用诸如mypy,Pyre和Pyright之类的类型检查器,至少在公司使用Python编写大型系统的地方。 对于Python的最后几个发行版,各种PEP向每......
2021-1-21 6:4
亚历克西斯·金(Alexis King)刚刚发表了一篇很棒的博客文章,标题为“不,动态类型系统本质上并不开放”。 这让我想起了我去年在FOSDEM上发表的名为“极简主义与类型”的演讲,在该演讲中,我从稍微不同的角度主张静态类型。我试图说服人们,动态类型程序中的类型通常比人们意识到的要复杂。而且通常比典型的静态类型语......
2021-1-20 4:7
v0.2现在只是v2.0。这种版本控制方式将与VS Code市场的方式更好地配合使用,即< major>。< minor>。< patch>。我想保留将来升级次要版本的选项。如果0.2冻结了主要和次要字段,那将无法正常工作。 接下来是文档。实际上,该语言的测试阶段应该花更长的时间......
2021-1-18 2:16
在撰写本文时(但可能不会持续很长时间!),Godbolt Compiler Explorer的四个主流编译器对此简单的C ++程序给出了四个不同的答案: 结构A {使用T = T1;使用U = U1;运算符U1 T1 :: *();运算符U1 T2 :: *();运算符U2 T1 :: *();运算符U2 T2 :......
2021-1-11 20:37
Haskell是我们在构建生产软件系统时使用的第一种编程语言。对于只对该语言有过熟经验的人来说,这似乎很不寻常。 Haskell以其先进的语言和陡峭的学习曲线而闻名。它也经常被认为是一种实用性有限的研究语言。 虽然Haskell确实具有非常大的表面积,但许多其他语言的程序员可能不熟悉许多概念和语法,但它在开发人员生......
2020-12-30 2:10
提供用于在R中编写功能程序的语法.Lambda.r具有cleansyntax,用于使用可选的保护语句定义多部分功能。还支持简单模式匹配。可以使用相同的功能符号轻松定义和实例化类型。类型检查是集成的和可选的,从而使程序员在其应用程序或程序包上具有完全的灵活性。 使用%as%表示法定义功能。函数定义中可以包含任何代......
2020-12-26 11:21
随着Ruby 3.0的发展,我们来看看即将发布的版本的亮点之一:Ruby Type Signatures。是的,类型正在成为我们最喜​​欢的动态语言!让我们看看如何通过将类型添加到现实世界的开源项目中并查看流程的更详细点来利用它们。 这不是我第一次涉及Ruby类型:大约一年前,我第一次体验了Sorbet,并在同一个......
2020-12-26 1:54
在Rust中实现零生产是对Rust后端开发的自以为是的介绍。您可以在zero2prod.com上预订该书。订阅新闻通讯,以在发布新剧集时得到通知。 我们的新闻通讯API是实时的,托管在Cloud提供商上。我们有一套基本的工具来解决可能出现的问题。有一个公开的端点(POST / subscriptions)可以订......
2020-12-25 0:36
从理论上讲,在Python中,所有类型都源自对象(它们是对象的直接或间接子类)。多年来,我一直相信(并书面认为)在实现级别上,对于用CPython用本机C代码编写的类型(Python的标准实现以及您可能正在使用的一种)而言,情况并非如此。用Cmight编写的类型的行为就好像它们是对象的后代一样,但是我认为它们的行为实......
Advanced TypeScript Type Tricks(casualdeveloper.net)
2020-12-23 21:12
在TypeScript中花了一些时间之后,您可能会开始渴望生活中到处的类型安全。 JavaScript本质上是一种不安全的语言,几乎在每个框架中到处都有龙。大多数框架已被充分介绍,但是如果您在内部设计一个漂亮的API,那么它需要具有令人难以置信的功能丰富和令人难以置信的安全性,但仍需要最好的JavaScript习惯用......
2020-12-22 5:8
龙虾(Lobster)是一种静态类型的编程语言,带有Python式语法,通过为您完成大部分繁重的工作,将表现型类型系统和编译时内存管理的优点与非常轻巧,友好而精巧的语法相结合。
Ruby 3.0.0 RC1 Released(www.ruby-lang.org)
2020-12-21 22:5
类型检查器(包括TypeProf和其他支持RBS的工具)将通过RBS定义更好地理解Ruby程序。 您可以写下类和模块的定义:类中定义的方法,实例变量及其类型以及继承/混合关系。 RBS的目标是支持Ruby程序中常见的模式,它允许编写高级类型,包括联合类型,方法重载和泛型。它还支持带有接口类型的鸭子输入。 Rub......
2020-12-16 14:53
开发人员将大部分时间花在阅读,理解和探索使用现有解决方案的其他方式上。坦白说,在我们的职业中,几乎没有时间在现实生活中实际编写新库和创建新接口。因此,在最常见的活动中获得帮助非常重要。命名约定就是这样一种事情,如果达成共识并在全球范围内推广,则可以提高可读性并降低使用成本。 某些语言具有自己有意义的特殊命名约定。 ......
2020-12-15 16:44
Nexus是最初由Tim Griesser创作的库,它使开发人员可以构建代码优先和类型安全的GraphQL API。 Prisma两年来一直是该库的核心贡献者,并帮助塑造了它的发展。 此版本是杰出社区反馈和贡献的结晶,是Nexus在生产中经过多年的实战测试的结果,也是对为那些为GraphQL API的开发人员创造......
2020-12-13 6:32
《自然》科学周刊于1869年首次出版。一个半世纪之后,它通过发表一篇有关Rust编程语言的文章,终于完成了一个癌变周期。 我对本文的喜欢之处在于,它不仅谈论性能,甚至谈论内存安全,还谈论了正确性。 好吧,它也谈到了多样性和包容性,我认为这也是极其重要的,但这不是语言的内在品质,更不是一种事态-我们不能认为这是人......
2020-12-11 16:15
这篇博客文章的灵感完全来自于每晚阅读GAT! / d / C5H5N5O的Reddit帖子。我只是决定把事情做得有点过头,并认为关于它的博客文章会很有趣。我想从一开始就很清楚:我在这篇文章中介绍了一些高级概念,这些概念依赖于Rust中的不稳定功能。我根本不主张使用它们。我只是在探索GAT可能和不可能的事情。 Rus......
2020-12-8 10:58
几周前,我们发布了Dart null安全测试版,这是一项主要的生产力功能,旨在帮助您避免null错误。说到空值,用户最​​近在/ r / dart_lang subreddit中询问: 但是,为什么我们仍然有/想要空值?为什么不彻底摆脱它呢?我目前也在玩Rust,它根本没有null。因此,似乎没有它就可以生存。 ......
2020-12-7 3:18
这些是关于我上周对Rust所做的一些说明,在此过程中,我进行了一些高度实验性的工作,结果很可能会变得过于复杂。 (我很想知道其他编程语言以及Rust的其他实现方法!)但是它涉及一些很酷的想法-抽象解释,Rust中的类型级别编程,自动优化的数据结构以及一些3D图形的几何代数-和我想分享我学到的东西。 另外:这些注释......
2020-12-6 4:31
到目前为止,在本系列文章中,我们已经研究了梯度下降的一般原理,以及如何计算前馈神经网络中每一层的反向传播,然后概括了一下CNN中不同类型层的反向传播。 现在,我们将退后一步,从更一般的意义上来看反向传播-通过计算图。通过这一过程,我们将大致了解框架如何计算其 我们将使用LSTM单元作为激励示例-继续对IMDB评论......
2020-12-5 22:9
一个求和类型,也称为区分联合,可以容纳几种类型的事物中的一种(并且只有一种),例如,考虑类似INI的配置文件中的某些设置,假设每个设置必须是一个字符串,一个整数或布尔值。如果要在C ++中推出自己的解决方案,我们可能会写类似以下内容: 结构设置{union {字符串str;整数;布尔b; };枚举类型{Str,In......
Four Types of Kanji (2019)(learnjapanesebest.wordpress.com)
2020-12-4 20:32
构成大部分日语文字的表意文字汉字有四种粗略类型。象形文字,指示符,组合符号以及含义和声音借用者。 第一种是象形文字,代表它们所代表的实际事物。一些研究人员声称,实际上不到4%的是象形文字。 人biped(人类)女女人手手田稻田子孩子日日月月门门山山川弓弓(如“弓箭”)火戸日式门口口,入口水水雨雨竹竹木树木......
2020-11-29 16:5
Nim是一种静态类型的编译系统编程语言。它结合了来自成熟语言(如Python,Ada和Modula)的成功概念。其设计注重效率,表达力,...
Parse, Don’t Type-Check(neilmadden.blog)
2020-11-26 23:13
去年有一篇很棒的文章,标题为Parse,请不要验证。我强烈推荐给任何程序员(以及最近的后续更新,名称不是类型安全的)。基本思想是有两种方法可以检查对函数的某些输入是否有效: 验证器检查输入是否有效,如果无效,则引发错误。它不会返回任何东西。例如,检查列表是否为空。 解析器的作用与验证器相同,但是返回输入的更特定的......
Existential Haskell(blog.sumtypeofway.com)
2020-11-26 22:6
大多数软件工程文献将面向对象的编程描绘为与功能编程不同,并且常常与功能编程不相容。当然,这是错误的二分法,因为函数式编程所鼓励的技术甚至适用于大多数面向对象的语言。然而,面向对象(可能是历史上最受欢迎的软件范例)已经普及了其宗旨,有时甚至可以看到它们出现在像Haskell这样的编程语言中,该语言与面向对象的哲学尽可能......
2020-11-23 22:39
Play的语法和语义在很大程度上受到了Forth的启发。这意味着语法是干净的,没有许多控制字符,而语义则由少量但功能强大的规则组成。 无需赘述,Play中的代码由空格分隔的函数组成,这些函数以从左到右的方式调用。函数调用的一个或多个返回值用作下一个函数调用的输入参数。数字是返回自身的函数。从技术上讲,整个段落......
Caramel: An OCaml to Erlang Compiler(caramel.abstractmachines.dev)
2020-11-23 2:57
焦糖具有高表现力,声音类型系统和快速的类型检查器。这使您可以通过使用更接近您的域的类型来排除整个错误类别,并在不牺牲开发速度的情况下毫不费力地重构大量代码。 为了实现这一目标,Caramel实际上是OCaml编译器的后端,因此,它重用了整个类型检查堆栈,并进行了25年以上的研究和数百万小时的学术研究和工业使用,并......
Flow-Sensitive Typing(en.wikipedia.org)
2020-11-22 23:0
跳转至导航跳转至搜索在编程语言理论中,流敏感类型(或流类型)是一种类型系统,其中表达式的类型取决于其在控制流中的位置。 在静态类型语言中,表达式的类型由组成它的子表达式的类型确定。但是,在流敏感类型中,如果表达式的类型遵循验证其类型的语句,则可以将其类型更新为更特定的类型。通过使用类型推断确定类型,并使用代数数据类......
TypeScript 4.1(devblogs.microsoft.com)
2020-11-21 18:11
如果您不熟悉TypeScript,那么它是一种通过在JavaScript上添加类型声明和注释的语法而构建的语言。 TypeScript编译器可以使用此语法对我们的代码进行类型检查,然后输出可在许多不同的运行时上运行的清晰可读的JavaScript。由于TypeScript具有跨编辑器的丰富编辑功能,因此静态类型检查可......