#类型

2020-11-12 2:32
几年前,彭博工程(Bloomberg Engineering)决定采用打字稿作为一种一流的支持语言。这篇文章分享了我们在这段旅程中学到的一些见解和教训。 标题是,我们发现打字稿是一个很好的净值!在阅读我们探索的一些令人惊讶的角落时,请记住这一点。作为工程师,我们自然会被发现、解决和分享问题所吸引,即使我们在😉上玩得很......
F# 5(devblogs.microsoft.com)
2020-11-11 1:46
今天,我们很兴奋地宣布F#5正式发布。它与.NET5一起发布。我们在过去的一年里一直致力于F#5,我们很高兴能与大家分享它。 如果您在Windows上使用Visual Studio,则需要升级到最新的16.8版本。 从F#4.1到F#5,F#的主要关注点一直是对.NET Core(现在是.NET5)的巨大支持。有了F......
2020-11-10 15:24
对于采用Scala3的开发人员来说,最显著的变化之一是引入了新的语法来取代以前Scala版本中使用的隐式机制。 新语法背后的动机是,相同的隐式关键字用于不同的目的和模式,因此它成为表达如何实现模式的一种方式。这意味着,当用户遇到这个模棱两可的咒语时,需要破译开发者的意图:这是一种转换吗?这是否避免了参数重复?这是类型......
2020-11-7 14:13
我之前听说过Erlang和BEAM没有打包静态类型系统,因为他们的创建者“无法构建它”。 虽然构建一个复杂、可靠和可伸缩的类型检查器绝对不是在公园里散步,但构建一个工作正常的类型检查器并不难。 如果这是可以做到的,它就会被完成,而且它会通过与OTP强化相同的过程来强化,并变成今天的样子:可靠性黄金标准。 因此,我决定......
2020-11-5 20:20
我们建议扩展Go语言,在类型和函数声明中添加可选的类型参数。类型参数受接口类型的约束。接口类型用作类型约束时,允许列出可能分配给它们的一组类型。在许多情况下,通过统一算法的类型推断允许从函数调用中省略类型参数。该设计完全向后兼容GO 1。 然后,我们从零开始解释整个设计,在需要的时候介绍细节,并用简单的例子介绍它们。......
2020-11-4 11:30
这个夏天我一直在Pusher实习,写了很多围棋。哈斯克尔的背景有点改变,所以我决定在最后写下我的想法。 没什么可去的,它是一种相当小的语言。在六月之前我一行也没有写过,现在我已经写了大约三万篇了。入门并变得富有成效是非常容易的。 另一方面,Haskell以难学而臭名昭著(咳嗽单曲教程咳嗽)。人们经常发现很难从计算纯数......
Names are not type safety(lexi-lambda.github.io)
2020-11-2 9:23
Haskell程序员花了大量时间讨论类型安全。程序构造的哈斯克尔学派主张“捕获类型系统中的不变量”和“使非法状态不可表示”,这两个听起来都是令人信服的目标,但在实现这些目标所使用的技术上却相当模糊。几乎就在一年前,我出版了“解析,不要验证”(Parse,Don‘t Validation)一书,作为弥合这一鸿沟的初步尝......
2020-10-31 7:54
基本上。我并不讨厌Python类型的批注-在我看来:int=0没有什么错。但是,每当我不得不看任何给定的冗长的废墟时,这双眼睛确实会有点流血,这就是打字模块鼓励人们写作的那种杂乱无章的东西。 类型模块,以及它最好的Mypy静态分析器和Linter,已经预先劫持了两个看似有用的新的、不可靠的Python类方法:__CL......
2020-10-25 9:1
在这里,我与大家分享一位经验丰富的开发人员首次涉足现实世界的锈蚀项目。它密切关注类型系统,以及我开始思考铁锈所需要的关键洞察力。它是为那些掌握这门语言的人编写的,如果您的背景不是函数式编程,它将特别有用。 虽然最初设想为第2部分(共2部分),但可以将其作为独立条目读取。在为普通读者编写的第1部分中,我详细介绍了Mak......
2020-10-22 23:2
我们正在将镍库公之于众。镍是Tweag开发的一种实验配置语言。虽然现在还不是第一次租赁的时候,但这是一个谈论这个项目的机会。这篇文章的目标是对该项目进行一个高层次的概述。如果你的好奇心很强,但你还想学更多,那就不要害怕,因为我们将来会发布更多关于英语具体方面的博客文章。但是现在,让我们来游览一下吧! [免责声明:Ni......
Why Does Julia Work So Well?(ucidatascienceinitiative.github.io)
2020-10-21 19:9
它比其他脚本语言更快,使您可以快速开发Python/MATLAB/R,同时生成与C/Fortran一样快的代码。 为什么不干脆让其他脚本语言变得更快呢?如果朱莉娅能做到,为什么其他人做不到呢? 你如何干预朱莉娅基准来证实这一点?(这对许多人来说是出乎意料的困难!)。 许多人认为Julia速度很快,因为它是实时(JIT......
Advanced GraphQL Features(www.getcortexapp.com)
2020-10-21 16:44
在过去的几年里,GraphQL已经成为一个被广泛采用的标准。然而,并不是每个人都在利用该标准的全部功能。在本文中,我将演示创建更具表现力的模式以更好地满足您的数据需求的方法。 让我们从定义一个示例场景开始。我们正在构建一个论坛应用程序,它将拥有几种类型的用户: 管理论坛操作的管理员。例如,处理技术问题、指定版主等。 ......
2020-10-13 20:7
1+1等于2这一事实非常明显,可能很难解释为什么。幸运的是,数学家们已经设计出了一种将算术形式化并随后证明1+1=2的方法。自然数是基于皮亚诺公理的。它们是一组简单的规则,定义(与正式系统一起)什么是自然数。因此,为了证明Rust中的1+1=2,我们首先需要一个能够处理逻辑的形式系统。我们将使用的正式系统不是某个随机......
2020-10-12 21:43
//这是OK std::string to_string(Int I);std::string to_string(Bool B);std::string si=to_string(0);std::string sb=to_string(True);//这不是OK int from_string(std::strin......
2020-10-7 13:35
那么让我们回到MySQL。这样一个有趣的范围背后的原因是什么?MySQL内部手册说,Time类型的存储在版本5.6.4中有所更改,在此版本中获得了对小数秒的支持。对于非小数类型,它使用3个字节。现在,如果他们仅仅使用这3个字节来编码若干秒,他们将能够支持跨越2330小时的间隔,这与当前最多838小时相比已经是相当大的......
2020-10-1 4:8
一年多前,我写了一些关于“更小的锈”的笔记,这是一种更高级的语言,它将从Rust的一些类型系统创新中获得灵感,但由于针对的领域对用户控制和性能的要求不那么严格,所以会更简单。在今年失业期间,我致力于更详细地勾勒出这样的语言会是什么样子。我想写一点关于在这段时间里我得出了什么新的结论。 重读我的上一篇文章,我惊讶地发现......
2020-9-29 10:37
“我的语言更好,因为它有很强的类型系统!”你的同事开发人员戴夫(Dave)尖叫着,试图将编程语言Cobol推向你们公司的下一项微服务。 在开发人员中,关于编程语言及其类型系统的讨论可能很快就会变得情绪化。在这些讨论中,我们经常抛出“类型系统”、“数据类型”、“类型推断”、“静态类型”、“弱类型”、“强制”等词。但是,......
2020-9-28 19:59
▄▐░▌▀▀▀▀█░█▀▀▀▀▐░。█▀▐░█▀▐░█▀█░▌▐░█▄▐░█▄▐░▌。▐░▌▀█░▌▀█░▌▐░█▄█░▌▐░▌。▐░▌▄█░▌▄█░▌▀█░█▀▀▐░█▄▐░▌▐░。▌▀▀。 这是一个纯粹在TypeScript类型注释中实现的SQL数据库。这意味着它只在类型上操作-您定义了一个数据库(仅仅是一个类型......
2020-9-27 17:34
打印机很酷,因为它们很酷,但我有朋友至少每周提醒我黑客攻击打印机是没有用的。每一次几乎都是同样的事情,找一个1990年的类型错误,写一个愚蠢的脚本,完成。几个月前,我开始了一个新的项目,在谷歌庞大的代码库中疯狂地骑行。虽然谷歌的大部分代码,特别是Android,都是开源的,但有些部分不是开源的。我将试着谈谈一个这样的......
2020-9-27 16:28
假定受众:关心实际学习的人(在本例中,尤其是软件开发人员)。而且,我的妻子非常喜欢听我说,我错了。“😂。 认知状态:这些都是我目前认为我错了的地方。但我已经改变主意一次了,所以…。 至少在我的经验中,人们讨论他们过去错误的事情是相当罕见的。甚至当我们发帖子的时候,我也在想这个新东西!“。我们很少确切地说出我们改变主意......
2020-9-26 3:47
RBS是一种描述Ruby程序类型的语言,类型检查器(包括类型分析器和其他支持RBS的工具)将通过RBS定义更好地理解Ruby程序。 您可以写下类和模块的定义:类中定义的方法、实例变量及其类型以及继承/混合关系。RBS的目标是支持Ruby程序中常见的模式,并允许编写高级类型,包括联合类型、方法重载和泛型。它还支持具有接......
Top .NET 5.0 new APIs(blog.ndepend.com)
2020-9-23 2:51
当一个新的主要.NET版本发布候选版本时,就可以使用NDepend代码审查更改功能来浏览添加了哪些新API。 这是相当直截了当的。启动VisualNDepend.exe;单击“比较代码库的两个版本”;然后选择这两个文件夹中的所有程序集: 单击OK,一分钟后,在分析了两个BCL版本之后,您就可以查看更改和新内容了。我们......
Bottom Type in F#(tysonwilliams.coding.blog)
2020-9-23 0:26
底部类型是没有值的类型。当每次执行不终止或引发异常时,它作为函数的返回类型很有用。某些语言包括底部类型。F#增加底部类型的建议被拒绝。有趣的是,C#添加底层类型的建议仍然有效。 不过,可以在F#中定义底层类型。这是我会怎么做的。 我最初的想法是省略Bottom,然后在其模块中单独使用此行(这样公共函数就不提供对这个私......
2020-9-22 22:38
Hask是一个纯Python、零依赖的库,它模仿了来自Haskell的大多数核心语言工具,包括: 完整的Hindley-Milner类型系统(带有类型类),它将对任何装饰有Hask类型签名的函数进行类型检查。 所有您喜欢的语法和控制流工具,包括运算符节、一元错误处理、保护等。 来自Haskell基库的(一些)标准库的......
2020-9-21 2:51
CAT有三个不同级别的规范:0级、1级和2级。这是为了让工具能够识别它们符合规范的程度。规范的每个级别都指定了许多原语函数。这些函数可以是内置的,也可以在隐式链接的标准库中定义。 核心Cat语言称为0级Cat。核心Cat语言是一种纯函数式语言。 猫的名字(也就是。标识符)类似于Scheme语言。它们由字母、数字和符......
2020-9-18 16:12
Python如此容易入门的原因之一是它具有动态类型。您不必指定变量的类型,只需将变量用作数据容器的标签。但在较大的项目中,拥有类型是有帮助的。如果您有一个没有记录的没有类型的函数,可能还有糟糕的变量命名,新的开发人员将会遇到困难。幸运的是,在带有PEP526🎉的Python3.6中添加了变量注释。 这篇文章的写作方式......
2020-9-17 3:43
这篇论文的预印本“依赖类型理论的一般定义”终于出现在arxiv上了!三年多前,彼得·拉姆斯丹邀请我研究这一主题,我欣然接受,并把我的学生菲利普·哈塞尔沃特拉了进去。我们开始回答这个问题: 至少对我来说,研究这样一个吃力不讨好的话题的动机来自弗拉基米尔·沃沃茨基(VladimirVoevodsky),他会向类型理论的观......
2020-9-12 13:44
在很长一段时间里,Lua5.1一直是Roblox的首选语言。随着我们的发展,对更好的工具支持和更高性能的VM的需求也在增长。为了回答这个问题,我们开始重新构建名为“luau”(发音为/lu-WOW/)的Lua堆栈,目标是包含程序员期望现代语言提供的功能-其中包括类型检查器、新的Linter框架和更快的解释器,仅举几例......
2020-9-12 2:55
2019年11月29日:Mypy 0.750发布。此版本对自类型、改进的存根生成器、注释的实验性静态推断以及其他改进和错误修复有更好的支持。请阅读博客帖子以了解更多详细信息。-Ivan Levkivskyi旧新闻def fib(N):a,b=0,1而a<;n:产生a a,b=b,a+b。 Def fib(n:in......
2020-9-8 23:29
有一大堆很棒的类型实用程序库可能会提升您在类型方面的工作,比如ts-toolband、实用程序类型、SimplyTyped等等,您已经可以使用它们了。 这个项目的目的是帮助您更好地理解类型系统是如何工作的,或者编写您自己的实用程序,或者只是从挑战中获得乐趣。我们还试图建立一个社区,让你可以提出问题并获得你在现实世界中......