SO中文参考
首页
(current)
程序语言
c
java
python
c++
go
javascript
swift
c#
操作系统
linux
ubuntu
centos
unix
数据库
oracle
mysql
mongodb
postgresql
框架
node.js
angular
react-native
avalon
django
twisted
hadoop
.net
移动开发
android
ios
搜索
为什么原地突变用`IO`表示?
问题描述
投票:0
回答:1
为什么可变数据结构和其他可变性在函数式语言中使用
IO
表示?我正在看例如Haskell 的
IORef
或 Idris 的
IOArray
。
haskell
functional-programming
language-agnostic
mutation
in-place
1个回答
0
投票
您不需要用
IO
来代表它们。可以用
ST
来完成它们。但你
可以
显然用
IO
来表示它们,这样就可以实现任何肮脏的副作用。因此,如果您无论如何都在
IO
中工作,那么最简单的方法就是在那里进行突变,这样您就无需担心将不同的单子焊接在一起。如果您
尚未
已经在
IO
中工作,那么您应该使用
ST
。
最新问题
在整个页面加载之前显示加载栏
Visual Studio Code 终端错误,无法运行代码。终端无法启动
inspect_asm 没有输出
SQL 脚本命令行参数
应用程序服务如何更改 msbuild 项目构建输出的详细程度
如何在没有默认凭据文件的情况下授权 Google 服务帐户?
绘图 y 标签中表达式中的斜体希腊语 Psi
使用按钮隐藏子图中的标记
“错误”:“415 不支持的媒体类型:未尝试加载 JSON 数据,因为请求内容类型不是“application/json”。”
SwiftUI 进度视图在单击“后退”时未启动进度
Wix 安装程序。如何停止 IIS 池
动态设置用户定义变量
创建新版本时启动后崩溃
如何在 terraform 外部数据源中正确地使 bash 脚本失败
如何使用java调用Dalle3并返回字符串URL?
React js Chakra UI Accordion 项目默认保持关闭状态,仅适用于移动响应
如何只输入值并让 TypeScript 推断对象的键?
在 SDK 管理器中找不到 Android 支持存储库
在 Linux 上忽略 SIGTERM
使用 gmail 作为电子邮件后端的正确方法?
© www.soinside.com 2019 - 2024. All rights reserved.