Erlang / OTP 17.0リリース

4月9日に、Erlang / OTP 17.0プラットフォームのメジャーリリースがリリースされました。

Erlangは、分散コンピューティングシステムを作成するために設計された、厳密な動的型付けを備えた関数型プログラミング言語です。



リリース17.0には多くの新機能と変更点があります。 最初に気付くことができるのは、バージョン番号スキームが変更されたことです;以前はR16B、R15Bなどでした。

新しいデータ型-マップを追加しました

おそらく誰もが待ち望んでいた最も重要な革新の1つです。 例によって示される:

1> Map = #{ key1 => "Value1", key2 => "Value2"}. #{key1 => "Value1",key2 => "Value2"} 2> maps:get(key1, Map). "Value1" #{key2 := MatchValue} = Map. #{key1 => "Value1",key2 => "Value2"} 4> MatchValue. "Value2" Map2 = Map#{key3 => "Value3"}. #{key1 => "Value1",key2 => "Value2",key3 => "Value3"} Map3 = Map2#{key1 := change_value1}. #{key1 => change_value1,key2 => "Value2",key3 => "Value3"} 

現在のリリースでは、このタイプは実験的としてマークされており、次のようないくつかの制限があります。

後で実装される機能の完全なリストはこちらです。

Erlang / OTPをリアルタイムOSEに移植

OSEは、ハードウェアの使用率を高めるように設計された、高性能でPOSIXに準拠したリアルタイムオペレーティングシステムです。
ハイライトは、プラットフォームのすべての部分が移植されているわけではないことを示しています。

無名関数に名前を付けることができるようになりました

そして、それらを再帰的に使用します。

 1> TestFun = fun Factorial(0) -> 1; Factorial(Num) when Num > 0 -> Num * Factorial(Num - 1) end. #Fun<erl_eval.30.106461118> 2> TestFun(4). 24 

Unicodeサポートの強化

たとえば、すべてのソースがデフォルトでutf8を使用するようになりました。 その他の改善点については、 こちらをご覧ください

また



LYSEがマッピングに関する新しい章を完成-learnyousomeerlang.com/maps
Joe Armstrongの変更について-http://joearms.imtqy.com/2014/02/01/big-changes-to-erlang.html
ご使用のシステム用の既製パッケージは、 こちらにあります
完全な変更ログ
公式ニュース

Source: https://habr.com/ru/post/J218855/


All Articles