首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSLT是函数式编程语言吗?

XSLT是函数式编程语言吗?
EN

Stack Overflow用户
提问于 2008-09-21 02:21:45
回答 6查看 9.4K关注 0票数 24

关于函数式编程语言的几个问题让我开始思考XSLT是否是函数式编程语言。如果不是,缺少哪些功能?XSLT 2.0是否缩短或缩小了差距?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-09-21 02:29:03

XSLT是声明性的,而不是有状态的。

尽管XSLT基于函数式编程思想,但它不是一种完全的函数式编程语言,它缺乏将函数作为第一类数据类型处理的能力。它有像惰性求值这样的元素来减少不必要的求值,并且也没有显式循环。

就像函数式语言一样,我认为它可以很好地与跨多个处理器的自动安全多线程并行化。

来自Wikipedia on XSLT

作为一种语言,

受到函数式语言和基于文本的模式匹配语言的影响。它最直接的前身是DSSSL,这种语言对SGML执行的功能与XSLT对XML执行的功能相同。XSLT也可以看作是一个模板处理器。

这是一个很好的网站,介绍如何在FXSL的帮助下使用XSLT as a functional language。FXSL是一个实现对高阶函数支持的库。

由于有了FXSL,我认为XSLT本身并不需要具备完整的功能。也许FXSL将来会作为W3C标准被包括在内,但我没有证据表明这一点。

票数 30
EN

Stack Overflow用户

发布于 2009-01-29 18:37:34

我相信你们现在已经找到这个链接了:-) http://fxsl.sourceforge.net/articles/FuncProg/Functional%20Programming.html

XSLT中的Well函数是一等公民,毕竟需要做一些工作:-)

票数 7
EN

Stack Overflow用户

发布于 2008-10-19 15:12:48

这就是我在编程时的感觉。

XSLT完全基于定义函数并将它们应用于输入流中的选定事件。

XSLT允许设置变量。函数式编程不允许函数有副作用--这是一个很大的问题。

尽管如此,使用XSLT编写时,感觉就像是以FP方式工作,您正在处理输入,而不是更改输入来创建输出。

这是一种与使用DOM时使用的编程模型非常不同的编程模型。DOM根本不分离输入和输出。你得到了一个数据结构--你可以按照你认为合适的方式去破坏它--没有犹豫,没有限制,也没有后悔。

可以说,如果你喜欢FP和它背后的原理,你可能会觉得在它工作很舒服。就像使用事件驱动编程的经验一样--以及XML本身--也会让你觉得很舒服。

如果您唯一的经验是使用自上而下的、非事件驱动的程序,那么XSLT将是非常陌生的、完全陌生的。至少一开始是这样。积累一点经验,当您对XPath表达式和事件处理感到非常满意时,再回到XSLT,您将获得丰厚的回报。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/110031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档