January 17 2007  水曜日

本文探讨了Haskell语言中严格性标志的使用方法及其在数据声明中的作用,并介绍了如何通过seq或!$函数实现函数参数的严格性。此外,还讨论了严格性标志对于解决内存泄漏问题的重要性,以及它可能带来的副作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  The strictness flag !, can only appear in data declarations.  It cannot be used in other type signatures
or in any other type definitions.  There is no corresponding way to mark function arguments as being strict,
although the same effect can be obtained using the seq or !$functions.

  Strictness
flags may be used to address memory leaks: structures retained by the garbage collector but no
longer necessary for computation.  Laziness is one of the fundamental properties of Haskell and adding strictness
fl
ags may lead to hard to find infinite loops or have other unexpected consequences.

  Actions are sequenced using an operator that has a rather cryptic name: >>= (or 'bind').  Instead of using
this operator directly, we choose some syntactic sugar, the do notation, to hide these sequencing operators
under a syntax resembling more conventional languages.  The do notation can be trivially expanded to >>=. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值