17

私は静的型付けのバックグラウンドから来て関数型プログラミングを調査していますが、動的型付けに完全に興奮しているわけではありません。どんなオプションがあるのか​​気になります。

開始する1つの答え:ActionScript 3は静的に型付けされており、いくつかの機能パラダイムを提供しますが、AS3プログラムはそれらを使用しないことがよくあります。

4

6 に答える 6

27

沢山あります。Haskell、OCaml、F# が思い浮かびます。あなたが Windows 開発者であれば、F# は非常に優れており、(非常に強力な StackOverflow コミュニティと共に) Microsoft によって十分にサポートされています。Lisp ファミリー言語 (Common Lisp、Scheme、Clojure) は動的関数型言語の例です。

ActionScript 3 には、オプションの静的型付けがあります。一方、Haskell、OCaml、および F# コンパイラは、型推論を使用して決定論的に型を推論します。OCaml で書かれたコードを最初に見ると、明示的な型が存在しないため、静的型付けの型安全性を備えた動的型付け言語のすっきりした外観になります。動的言語のオプションの静的型付け (素晴らしいアイデア) は最終的には型推論に置き換えられ、10 年後には静的対動的の議論は無意味になるだろうというのが私の意見です。

于 2011-11-16T05:57:29.870 に答える
18

あなたのような人(おそらく静的に型付けされた、OO、命令型の背景を持つ人)への私の一番の推奨はScalaです。Scalaは、Javaや他のほとんどの言語よりもOOをサポートする命令型のハイブリッドです。ScalaはJVMバイトコードにコンパイルされ(.netもサポートされていますが、使用量ははるかに少なくなります)、Java以外のJVM言語間で比類のないJava相互運用性を提供します。私はコンパイラーでScalaを使用しています-jgoそしてScalaコードを書くことは非常に楽しく満足のいくものであることがわかりました。Scalaを学ぶための最良のリソースは、言語デザイナー自身が書いたScalaでのプログラミングです。

ハイブリッド言語を望まず、代わりにFPの争いに直接飛び込むことを好むなら、私はHaskellを選びます。Haskellは純粋に関数型言語です。可変性や効果の(ファーストクラスの)概念はありません。私のお気に入りのHaskellリソースは、機知に富んだLearn You a Haskell for Great Goodです!。実際、静的に型付けされたFPの世界への素晴らしい入門書であるため、Haskellを使用するかどうかに関係なく、LYAHの一部を読むことを強くお勧めします。言語の選択を考える前から読み始めていました。

于 2011-11-16T20:37:52.577 に答える
10

型理論は、命令型言語よりずっと前に、関数型プログラミング (型付きラムダ計算) に最初に適用されました。

最も高度な静的型システム (命令型の世界ではこれに匹敵するものはありません) については、CoqAgdaを調べてください。

于 2011-11-16T08:49:46.537 に答える
5

haskellは頭に浮かびます(その型システムはおそらく最も進んでいますが)、MLファミリーの言語であるF#AFAIKです。

于 2011-11-16T05:56:06.900 に答える
4

第一級の字句閉鎖と保証された末尾呼び出しの除去を備えたいくつかの静的に型付けされた言語:

テールコール除去なし:

  • C# (1999 年から現在)
  • Scala (2008-現在)
于 2016-05-31T20:01:58.593 に答える
2

Java エコシステムに精通している場合は、Haskell によく似た言語であるFregeを一見の価値があるかもしれません。コンパイルすると Java ソース コードになります。

于 2011-11-16T11:02:31.300 に答える