我一直在阅读Doets和Eijck撰写的《 Haskell逻辑,数学和编程之路》(2004)。这似乎是一本受人尊敬的书,但是当我声称Haskell是Lisp家族的一员时,我感到震惊。这个准确吗?我将用S表达式,不纯函数和列表作为Lisps的特征,并将其作为唯一的复合数据结构。Haskell没有任何东西。该主张有什么理由?
我正处于一个新的Flash游戏项目的计划阶段,并且想知道哪种语言会更好用?我已经对Actionscript 3有了很深的理解,并且还没有和Haxe一起工作过,但是我已经阅读了语言参考文档,看来Haxe有一些来自我最喜欢的语言C#和Ruby的功能.
所以我的问题有两个部分:
1)Haxe可以与闪存组件(swc文件)互操作吗?例如,如果我使用Flash IDE来设置一些控件,我可以导入这些控件并在Haxe中使用它们吗?
2)Haxe编译器是否有任何性能优势?或任何陷阱?
我想知道我是否应该继续学习OCaml或切换到F#或Haskell.
以下是我最感兴趣的标准:
长寿
实际性
精心设计
请通过逻辑论证和文章引用来支持您的观点.谢谢.
你知道任何像Python的pass声明一样的PHP 语句吗?
我真的很喜欢django/jinja2模板语言.它们的语法非常简单,而且功能多样.在javascript中是否有类似于语法和功能的内容,或者如果不是两者,至少在功能方面.
我查看了下划线,jquery模板和小胡子模板,但它们似乎都不是我想要的.
补充说明
我认为所有的库(我看过)胡子是最好的,但我不喜欢语法.例如这个胡子模板
{{#people}}
{{name}}
{{/people}}
{{^people}}
No people :(
{{/people}}
Run Code Online (Sandbox Code Playgroud)
与django的模板相比:
{% for person in people %}
{{ person.name }}
{% empty %}
No people :(
{% endfor %}`
Run Code Online (Sandbox Code Playgroud)
应用过滤器也是一样的.例如:
{{#filter}}{{value}}{{/filter}}
Run Code Online (Sandbox Code Playgroud)
VS
{{ value|filter }}
Run Code Online (Sandbox Code Playgroud)
我认为django/jinja2方法更干净,感觉更自然.
那么,是否有任何js库的模板与django/jinja非常相似?如果没有,我想我必须忍受muschache(或者其他一些好的js库 - 我愿意接受建议),但它感觉不对.
谢谢.
javascript jquery template-engine language-comparisons jinja2
我正在尝试用另一种语言(php)重新实现python 切片表示法,并寻找一个模仿python逻辑的片段(任何语言或伪代码).也就是说,给定列表及其三个(start, stop, step)或一部分,确定所有参数的正确值或默认值,并将切片作为新列表返回.
我试着查看来源.该代码远远超出我的技能,但我不禁同意评论说:
/* this is harder to get right than you might think */
Run Code Online (Sandbox Code Playgroud)
此外,如果这样的事情已经完成,指针将非常感激.
这是我的测试平台(确保您的代码在发布前通过):
#place your code below
code = """
def mySlice(L, start=None, stop=None, step=None):
or
<?php function mySlice($L, $start=NULL, $stop=NULL, $step=NULL) ...
or
function mySlice(L, start, stop, step) ...
"""
import itertools
L = [0,1,2,3,4,5,6,7,8,9]
if code.strip().startswith('<?php'):
mode = 'php'
if code.strip().startswith('def'):
mode = 'python'
if code.strip().startswith('function'):
mode = 'js'
if mode == 'php':
var, none = '$L', …Run Code Online (Sandbox Code Playgroud) 我正在学习PHP5(上次我检查PHP是在PHP4天)并且我很高兴看到PHP5 OO比PHP4更像Java,但仍有一个问题让我感到非常不舒服,因为我的Java背景:阵列.
我正在阅读"Proffesional PHP6"(Wrox),它显示了自己的Collection实现.我发现了其他类似于http://aheimlich.dreamhosters.com/generic-collections/Collection.phps的基于SPL的文章.我还发现SPL中有某种Collection(ArrayObject)
但是,我很惊讶因为我没有真正看到人们在PHP中使用Collections,他们似乎更喜欢数组.
那么,在PHP中使用Collections就像人们在Java中使用ArrayList而不是基本数组一样,这不是一个好主意吗?毕竟,php数组并不像java数组.
我很好奇Scala和C++ 11的类型推断之间的区别是什么.在哪种情况下,我必须用一种语言指定类型而不是另一种语言?一个区别似乎是函数的返回类型总是必须在C++ 11中指定,尽管decltype具有尾随返回类型的新函数语法允许指定推断类型.
在Python中,我可以创建一个散列,其中每个元素在首次引用时都具有默认值(也称为"autovivification").这是一个例子:
from collections import defaultdict
d = defaultdict(int)
d["new_key"] += 1
print d
Run Code Online (Sandbox Code Playgroud)
打印dict显示"new_key"的值为1.
Ruby中的等价物是什么?此代码抛出错误:
d = {}
d[:new_key] += 1
puts d
test.rb:3:in `<main>': undefined method `+' for nil:NilClass (NoMethodError)
Run Code Online (Sandbox Code Playgroud) ruby python dictionary language-comparisons autovivification
C ++是否提供类似于Ada的subtype类型来缩小类型?
例如:
type Weekday is (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);
subtype Working_Day is Weekday range Monday .. Friday;
Run Code Online (Sandbox Code Playgroud)