是否有任何带有显式纯修饰语的语言

时间:2018-06-24 00:15:25

标签: functional-programming purely-functional

除了Solidiy之外,是否还有任何语言具有明确的编译器强制纯修饰符?我知道有些工具允许将功能标记为纯静态分析,例如Java的@Contract注释,但找不到任何能宣传明确的pure修饰符的语言。同时,具有此修饰符将打开大量编译器优化,并使代码推理更加容易。

如果没有这样的语言,那么引入这样的修饰语是否有任何挑战?在典型的类似于Java的命令式语言中,我能看到的唯一困难是,如果可以将每个native(FFI)调用视为纯文本,则需要将每个pure显式标记为unsafe pure。可能会增加诸如日志记录的难度,但是当开发人员向编译器发誓该函数是纯函数(即使不是真的)时,这些函数可以标记为{{1}},这可能会阻止编译器优化这些函数,但是推理的好处会保留。

0 个答案:

没有答案