gpt4 book ai didi

language-agnostic - 为了理解不同的方法和概念,需要学习哪些重要的语言?

转载 作者:行者123 更新时间:2023-12-03 04:16:29 26 4
gpt4 key购买 nike

当你只有一把断线钳和一瓶伏特加时,一切看起来就像沃尔夫·布利策船库门上的锁。 (如果你不读 xkcd,请用锤子和钉子代替)

我目前对 Clojure、Python、Java 和 PHP 进行编程,因此我熟悉 C 和 LISP 语法以及空白。我知道命令式、函数式、不可变式、OOP 和一些类型系统以及其他东西。现在我想要更多!

哪些语言采用不同的方法并且对于实际工具选择或理论理解有用?

我不想学习另一种函数式语言(Haskell)或另一种命令式 OOP 语言(Ruby),也不想练习像 Brainfuck 这样不切实际的有趣语言。

我发现自己的一件非常有趣的事情是基于单象堆栈的语言,例如 Factor。

只有当我觉得自己理解了大部分概念并对所有问题有了答案时,我才会开始思考我自己的玩具语言来包含我所有的个人喜好。

最佳答案

实用性问题是非常主观的,所以我只想说,学习不同的语言范例只会让你成为一个更好的程序员。还有什么比这更实用的呢?

函数式,Haskell - 我知道你说过你不想这样做,但你真的应该重新考虑。您已经接触过 Clojure 甚至 Python 的一些功能,但如果没有 Haskell,您还没有充分体验到它。如果您真的反对 Haskell,那么好的折衷方案是 ML 或 OCaml。

声明式、Datalog - 许多人会在这个位置推荐 Prolog,但我认为 Datalog 是声明式语言的一个更清晰的示例。

Array, J - 我刚刚发现 J,但我发现它是一种令人惊叹的语言。它会把你的思想扭曲成椒盐卷饼。你会为此感谢 J。

Stack、Factor/Forth - Factor 非常强大,我计划尽快深入研究它。 Forth 是 Stack 语言的鼻祖,作为额外的奖励,它是 simple to implement你自己。关于通过实现来学习,有一些话要说。

Dataflow,Oz - 我认为 Oz 的影响力正在上升,并且在未来只会继续增长。

基于原型(prototype),JavaScript/Io/Self - Self 是鼻祖,对每种基于原型(prototype)的语言都具有极大的影响力。这与基于类的 OOP 不同,不应如此对待。许多人使用原型(prototype)语言并创建临时类系统,但如果您的目标是扩展您的思维,那么我认为这是一个错误。充分利用语言。阅读 Organizing Programs without Classes寻求想法。

专家系统,CLIPS - 我总是推荐这个。如果您了解 Prolog,那么您可能会在加快速度方面占据上风,但它是一种非常不同的语言。

Frink - Frink 是一种通用语言,但它以其单位转换系统而闻名。我发现这种语言非常鼓舞人心,因为它坚持不懈地努力做到最好。另外...这真的很有趣!

函数+可选类型,Qi - 你说你有一些类型系统的经验,但是你有“可换肤*类型系统的经验吗?没有人有......但他们应该有。 Qi 在很多方面都很像 Lisp,但它的类型系统会让你大吃一惊。

Actors+容错,Erlang - Erlang 的进程模型引起了很多关注,但它的容错和热代码交换机制正在改变游戏规则。您不会学到很多关于 FP 的知识,而在 Clojure 中却学不到,但它的 FT 功能会让您想知道为什么更多的语言似乎无法做到这一点。

享受吧!

关于language-agnostic - 为了理解不同的方法和概念,需要学习哪些重要的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3958630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com