直到最近,我对XSLT的了解足以满足我简单,直接的需求.但是,当"只是尝试的东西"不起作用时,一个更高级的要求将我送到参考资料.从一开始就开始真的很有趣.我最初在最后期限压力期间学习了XSLT,在20/20事后看来"工作"显然比"理解"更重要.
我很惊讶在Michael Kay的书的第33页上读到XSLT源于Scheme.维基百科说,
Scheme是编程语言Lisp的两种主要方言之一.
也许我知道(或者很快就会知道)关于函数式编程的更多信息比我想象的要多.在搜索SO之类的帖子,比如XSLT是一种函数式编程语言吗?并且根据其工作链接显示,无论XSTL是否是一种功能语言,都有一些意见.从帖子中我应该选择哪种函数式编程语言作为第一种函数式编程语言? 我首先得到了学习F#的建议,因为我来自.NET,我喜欢快速学习有用的程序.
我的第一个问题是,如果有人非常了解XSLT 2.0,那么在学习F#,Lisp或Haskell之前,有多少"真正的"函数式编程语言如F#,Lisp或Haskell已经知道了?出于讨论的目的,假设一个"非常熟悉XSLT 2.0"的人在她第一次阅读XSLT Cookbook时学到了很少的新概念.相反,她对不熟悉的信息的反应是,"当然这是一个很好的方法.我应该想到这一点!"
第二个问题是,是否有XSLT 2.0/XPATH 2.0的部分我应该确保我很好地理解学习F#/ Lisp/Haskell更容易?
第三,如果计划最终学习F#/ Lisp/Haskell /等,那么XSLT的哪些部分最好被忽略?也就是说,XSLT是否具有类似于GOTO,ALTER和ON ERROR RESUME NEXT的概念,这些概念不适用于"真正的"函数式编程语言?
简短的回答很好,因为学习函数式编程语言对我来说是一个计划外的未来项目.
PS因缺乏声誉而删除了几个超链接.讨厌鬼!;-)
Noob问题.我在包含这个类的文件上运行了RubyMine的Code Inspect.
class Square
attr_accessor :width
def area
@width * @width
end
end
Run Code Online (Sandbox Code Playgroud)
我很惊讶地收到两条警告@width * @width:
Cannot find declaration for field '@width'
----编辑----
Ruby-Doc说的这个attr-accessor
为此模块定义命名属性,其名称为symbol.
id2name,创建一个实例变量(@name)和一个相应的访问方法来读取它.还创建一个名为name=设置属性的方法.字符串参数转换为符号.
对我来说,"定义"意味着它有一个"声明".警告信息没有意义."警告:使用前字段可能未初始化"更准确.
我认为这是一个RubyMine问题(如果它是一个问题).RubyMine显然使用自己的代码检查协议,不使用标准Linter.