问题标签 [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.
functional-programming - 如何从标准输入读取?
如何在清洁中做到这一点?
伪代码:
实际上,我看过一些pdf。但是我有一个想象力,很难处理标准输入和标准输出。我可以有一个使用 stdio 的代码示例吗?
按照基兰的指示,我完成了我的小程序。
idris - Idris 的“BorrowedType”背后的意图是什么?
在 idris 中,有一个称为类型值的宇宙UniqueType
,其中只能使用一次。据我所知,它可以用来编写高性能代码。但是一个值只能使用一次的事实通常太有限了,所以有一种方法可以借用一个值而不是消费它:
数据类型在Borrowed
Idris 中定义如上。为什么它不简单地返回Type
而是引入另一个类型的宇宙(BorrowedType
)?
haskell - 使用 mkPair 的线性和唯一类型
我一直在这里阅读这篇文章http://edsko.net/2017/01/08/linearity-in-haskell/,作者提到可以构造一个具有唯一元素的非唯一数组,但你可以' t 提取它们。
IE
但是您不能在调用函数中读取一次元素吗?也许我错过了一些东西。
此外,虽然是合法的,但从线性角度来看,同样的函数是非法的。但我认为这些只是同一枚硬币的两个面,因此该功能不会根据视角改变合法性。
scala - 禁止使用同一个 ID
我们正在使用一些二进制序列化程序,它要求我们使用 ID 注册一个序列化程序。
所以我们有一个像这样的巨大文件
文件越大,合并冲突越多,同一 ID 可能被多次使用的机会(并且已经发生)就越高(这很糟糕)。
我们可以请 Scala 编译器在这里帮助我们吗?如果重复使用相同的 id 会导致编译错误,那么方法是什么?任何不使用宏的方法?
functional-programming - 干净的语言:读取文本文件的内容到行列表。是否可以避免唯一性?
假设我*File
想阅读它的全部内容,并将每一行作为不同的元素存储在列表中。
我直观的解决方案是:
两者freadline
都fend
来自StdFile
模块:
但是,由于我违反了一些 Uniquness 规则,所以我当然遇到了错误:
共享对象不能提供文件要求的属性。
如何避免这个唯一性问题?我尝试使用where
来存储 one 的值freadline
,但显然它不起作用。
请考虑我是新手Clean
,唯一性规则对我来说不是很清楚。非常感谢!
monads - 用纯编程语言包装副作用
我正在研究在纯编程语言中产生计算效果的可能方法。
Monads 通常作为一种在纯语言中包装副作用的方式呈现。不过,我看不出他们有什么帮助。我看到的问题是可以复制或丢弃单子。
在纯语言中,操作的结果应该只取决于它的参数。但是用一种假设的语言
编码
将获取类型Unit
并且无法捕获副作用的存在。
我以后也可以
大概将(不是最新的)状态a
分为两条路径a1
和a2
. 还是所有效果都延迟到IO ()
从主函数返回一个选定的术语?然后我想知道如何编译保持可变状态的可复制单子(当单子确实分歧时,在什么时候以及如何复制状态?)
相比之下,独特的类型似乎能够自然地捕捉到唯一一个上下文的存在
这似乎捕捉到状态被不可逆转地修改并且无法再次访问。因此,函数调用的所有结果确实只取决于它们的参数。