当前位置:  开发笔记 > 前端 > 正文

XSLT是一种函数式编程语言吗?

如何解决《XSLT是一种函数式编程语言吗?》经验,为你挑选了4个好方法。

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



1> Brian R. Bon..:

XSLT是声明性的而不是有状态的.

虽然XSLT基于函数式编程思想,但它不是一种完整的函数式编程语言,它缺乏将函数视为一级数据类型的能力.它具有惰性评估等元素,可减少不必要的评估,也缺少显式循环.

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

来自维基百科的XSLT:

作为一种语言,XSLT受功能语言以及基于文本的模式匹配语言(如SNOBOL和awk)的影响.其最直接的前身是DSSSL,这是一种为SGSL执行与XML相同功能的语言.XSLT也可以被视为模板处理器.

这是一个很好的网站,在FXSL的帮助下使用XSLT作为函数式语言.FXSL是一个实现对高阶函数的支持的库.

由于FXSL,我不认为XSLT本身需要完全正常运行.也许FXSL将来会被列为W3C标准,但我没有证据证明这一点.



2> 小智..:

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

XSLT中的良好功能是一流的公民,毕竟有一些解决方法:-)



3> JohnnySoftwa..:

这就是我编程时的感受.

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

XSLT允许您设置变量.功能编程不允许函数产生副作用 - 这是一个很大的问题.

尽管如此,在XSLT中写作时,人们也有同样的"感觉就像以FP方式工作.你正在使用输入 - 你不是在改变它 - 来创建输出.

这是一个非常非常不同的编程模型,与使用DOM API时使用的编程模型非常不同.DOM根本不分开输入和输出.您将获得一个数据结构 - 并且您可以毫不犹豫,限制或悔恨地将其视为您认为合适的方式.

可以这么说,如果你喜欢FP及其背后的原理,你可能会感到很舒服.就像事件驱动编程的经验 - 以及XML本身 - 也会让你感到舒服.

如果你唯一的体验是自上而下,非事件驱动的程序 - 那么XSLT将是非常陌生的,确实是外星人的风景.至少在开始时.增加一点经验然后回到XSLT,当XPath表达式和事件处理对你来说真的很舒服时,你会得到很好的回报.



4> Ian P..:

在大多数情况下,XSLT不是100%函数式编程语言的原因是它无法将函数视为一流的数据类型.

可能还有其他一些 - 但这是明显的答案.

祝好运!

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有