当前位置:  开发笔记 > 编程语言 > 正文

您希望使用通用语言的哪些功能?

如何解决《您希望使用通用语言的哪些功能?》经验,为你挑选了4个好方法。

您希望使用通用语言的哪些功能?更准确地说,我的意思是通常根本不存在的功能,但很高兴看到,而不是"我希望动态打字很受欢迎".



1> benjismith..:

我经常认为"可观察"会产生很好的场修改器(如公共,私有,静态等)

GameState {
   observable int CurrentScore;
}

然后,其他类可以声明该属性的观察者:

ScoreDisplay {
   observe GameState.CurrentScore(int oldValue, int newValue) {
      ...do stuff...
   }
}

编译器将使用通知代码包装对CurrentScore属性的所有访问,并在修改值时立即通知观察者.

当然,你可以使用事件监听器和属性更改处理程序在大多数编程语言中做同样的事情,但这是一个巨大的痛苦,需要大量零碎的管道,特别是如果你不是你想要的值的类的作者观察.在这种情况下,您通常必须编写包装器子类,将所有操作委派给原始对象并从mutator方法发送更改事件.为什么编译器不能生成所有那些愚蠢的样板代码?



2> Joris Timmer..:

我想最明显的答案是类似Lisp的宏.能够使用您的代码处理您的代码非常"元",并允许从(几乎)开始开发一些非常令人印象深刻的功能.

紧随其后的是C++等语言的双重或多重发送.如果多态可以扩展到虚函数的参数,我会喜欢它.



3> mipadi..:

我希望有更多的语言来拥有像Haskell这样的类型系统.Haskell使用了一个非常棒的类型推理系统,所以你几乎不必声明类型,但它仍然是一种强类型语言.

我也非常喜欢你在Haskell中声明新类型的方式.我认为它比例如面向对象的系统更好.例如,要在Haskell中声明二叉树,我可以执行以下操作:

data Tree a = Node a (Tree a) (Tree a) | Nothing

因此,复合数据类型更像是代数类型而不是对象.我认为这使得该程序的推理变得更加容易.

另外,混合类型类更好.类型类只是一个类实现的一组类 - 有点像Java这样的语言中的接口,但更像是像Ruby这样的语言中的mixin,我猜.这很酷.

理想情况下,我希望看到像Python这样的语言,但是使用数据类型和类型类(如Haskell而不是对象).



4> Kent Fredric..:

我是闭包/匿名功能的忠实粉丝.

my $y = "world"; 

my $x = sub {  print @_ , $y }; 

&$x( 'hello' );  #helloworld 

my $adder = sub {
    my $reg = $_[0];
    my $result = {};
    return sub { return $reg + $_[0]; }
};

print $adder->(4)->(3);

我只是希望它们更常见.

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