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"}
現在のリリースでは、このタイプは実験的としてマークされており、次のようないくつかの制限があります。
- 値は補助関数によってのみ取得できますが、次の構成は使用できません:値=マップ#{key1}
- コンパイル時に不明なキーを指定することはできません
後で実装される機能の完全なリストは
こちらです。
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を使用するようになりました。 その他の改善点については、
こちらをご覧ください 。
また
- TCP、UDP、およびSCTPソケット用の新しい{active、N}オプション
- ASN.1 OCTET STRINGおよびビット文字列からErlang型へのマッピングが改善され、ASN.1に対するその他の改善と最適化が行われました
- 新しいオプションのスケジューラーバランシングメカニズムを追加しました
- 「ダーティ」プランナーを使用する実験的機能を追加
LYSEがマッピングに関する新しい章を
完成-learnyousomeerlang.com/mapsJoe Armstrongの変更について
-http://joearms.imtqy.com/2014/02/01/big-changes-to-erlang.htmlご使用のシステム用の既製パッケージは、
こちらにあります 。
完全な変更ログ公式ニュース