问题标签 [uniqueness-typing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
165 浏览

functional-programming - 如何从标准输入读取?

如何在清洁中做到这一点?

伪代码:

实际上,我看过一些pdf。但是我有一个想象力,很难处理标准输入和标准输出。我可以有一个使用 stdio 的代码示例吗?

按照基兰的指示,我完成了我的小程序。

0 投票
1 回答
530 浏览

idris - Idris 的“BorrowedType”背后的意图是什么?

在 idris 中,有一个称为类型值的宇宙UniqueType,其中只能使用一次。据我所知,它可以用来编写高性能代码。但是一个值只能使用一次的事实通常太有限了,所以有一种方法可以借用一个值而不是消费它:

数据类型在BorrowedIdris 中定义如上。为什么它不简单地返回Type而是引入另一个类型的宇宙(BorrowedType)?

0 投票
2 回答
135 浏览

haskell - 使用 mkPair 的线性和唯一类型

我一直在这里阅读这篇文章http://edsko.net/2017/01/08/linearity-in-haskell/,作者提到可以构造一个具有唯一元素的非唯一数组,但你可以' t 提取它们。

IE

但是您不能在调用函数中读取一次元素吗?也许我错过了一些东西。

此外,虽然是合法的,但从线性角度来看,同样的函数是非法的。但我认为这些只是同一枚硬币的两个面,因此该功能不会根据视角改变合法性。

0 投票
0 回答
27 浏览

scala - 禁止使用同一个 ID

我们正在使用一些二进制序列化程序,它要求我们使用 ID 注册一个序列化程序。

所以我们有一个像这样的巨大文件

文件越大,合并冲突越多,同一 ID 可能被多次使用的机会(并且已经发生)就越高(这很糟糕)。

我们可以请 Scala 编译器在这里帮助我们吗?如果重复使用相同的 id 会导致编译错误,那么方法是什么?任何不使用宏的方法?

0 投票
0 回答
43 浏览

functional-programming - 干净的语言:读取文本文件的内容到行列表。是否可以避免唯一性?

假设我*File想阅读它的全部内容,并将每一行作为不同的元素存储在列表中。

我直观的解决方案是:

两者freadlinefend来自StdFile模块:

但是,由于我违反了一些 Uniquness 规则,所以我当然遇到了错误:

共享对象不能提供文件要求的属性。

如何避免这个唯一性问题?我尝试使用where来存储 one 的值freadline,但显然它不起作用。

请考虑我是新手Clean,唯一性规则对我来说不是很清楚。非常感谢!

0 投票
0 回答
49 浏览

monads - 用纯编程语言包装副作用

我正在研究在纯编程语言中产生计算效果的可能方法。

Monads 通常作为一种在纯语言中包装副作用的方式呈现。不过,我看不出他们有什么帮助。我看到的问题是可以复制或丢弃单子。

在纯语言中,操作的结果应该只取决于它的参数。但是用一种假设的语言

编码

将获取类型Unit并且无法捕获副作用的存在。

我以后也可以

大概将(不是最新的)状态a分为两条路径a1a2. 还是所有效果都延迟到IO ()从主函数返回一个选定的术语?然后我想知道如何编译保持可变状态的可复制单子(当单子确实分歧时,在什么时候以及如何复制状态?)

相比之下,独特的类型似乎能够自然地捕捉到唯一一个上下文的存在

这似乎捕捉到状态被不可逆转地修改并且无法再次访问。因此,函数调用的所有结果确实只取决于它们的参数。