Erlang – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
Jona1357 (שיחה | תרומות)
יצירת הדף, תרגום מהויקיפדיה האנגלית
 
Jona1357 (שיחה | תרומות)
הרחבה
תגיות: הוספת תבנית לשינויים בערך עריכה חזותית
שורה 24:
| סיומת = .erl
.hrl
| אתר אינטרנט = https://www.erlang.org
}}
 
שורה 35:
 
=== עצרת ===
מימוש פעולת ה[[עצרת]] ב-Erlang:<syntaxhighlight lang="erlang">
-module(fact). % This is the file 'fact.erl', the module and the filename must match
-export([fac/1]). % This exports the function 'fac' of arity 1 (1 parameter, no type, no name)
שורה 47:
</syntaxhighlight>
 
=== [[סדרת פיבונאצ'י|סדרת פיבונאצ׳י]] ===
אלגוריתם רקורסיבי ב-Erlang אשר מייצר את הסדרה.<syntaxhighlight lang="erlang">
-module(series).
שורה 59:
fib_int(1, _, B) -> B;
fib_int(N, A, B) -> fib_int(N-1, B, A+B).
</syntaxhighlight>{{קצרמר|תוכנה}}
 
=== Quicksort ===
אלגוריתם המיון [[מיון מהיר|Quicksort]] ב-Erlang:<syntaxhighlight lang="erlang">
%% Sort a list of items
-module(qsort). % This is the file 'qsort.erl'
-export([qsort/1]). % A function 'qsort' with 1 parameter is exported (no type, no name)
 
qsort([]) -> []; % If the list [] is empty, return an empty list (nothing to sort)
qsort([Pivot|Rest]) ->
% Compose recursively a list with 'Front' for all elements that should be before 'Pivot'
% then 'Pivot' then 'Back' for all elements that should be after 'Pivot'
qsort([Front || Front <- Rest, Front < Pivot]) ++
[Pivot] ++
qsort([Back || Back <- Rest, Back >= Pivot]).
</syntaxhighlight>
 
== סוגי נתונים בשפה ==
{{להשלים}}
ב-Erlang ישנם 8 סוגי נתונים פרימטיבים:
 
Integers ( מספרים שלמים ) -
 
Atoms - נכתבים כמחרוזות של תווים אלפאנומרים עוקבים, כאשר הראשון הוא אות קטנה ( lowercase ). משמשים על מנת לציין ערכים שונים.
 
Floats - משתנים עשרוניים ( Floating Point Numbers )
 
References - התכונה היחידה של סמלים אלו היא שניתן להשוות ביניהם. הם נוצרים על ידי הפעולה <code>(...)make_ref</code>
 
Binaries - אוסף של בתים ( bytes ). בית בהגדרתו הוא 8 סיביות, כלומר, 8 ספרות בינאריות .
 
Pids - קיצור ל-Process Identifiers ( מזהי תהליכים ). Pid הוא הפניה לתהליך של Erlang והוא נוצר על ידי הפעולה <code>(...)spawn</code>.
 
Ports - פורטים נוצרים על מנת לתקשר עם העולם החיצוני. הם נוצרים עם הפעולה המובנית <code>open_port</code> . הודעות יכולות להישלח ולהתקבל מפורטים, אך הן חייבות למלא אחר [[פרוטוקול תקשורת|פרוטוקול]] אשר נקרא "port protocol".
 
Funs ( קיצור של Functions )- פונקציות, פעולות. הן נוצרות בתחביר הבא : <code>fun(...) -> ... end</code>.
 
Tuples - מבני נתונים אשר מכילים מספר קבוע של נתונים. להמחשה, קטע הקוד <code>{D1,D2,...,Dn}</code> מציין tuple שאבריו <code>D1, D2, ... Dn</code>.
 
Lists- רשימות
 
Maps ( מילון, Dictionary ) - רשימה של זוגות של key ( מפתח ) ו- ( value ). בדומה למילון פשוט, אשר מכיל רשימה שמכילה זוגות של מילה והתרגום שלה. נכתב בתחביר הבא : <code>#{Key1=>Value1,...,KeyN=>ValueN}</code>.
 
Strings - רשימה של תווים המוגדרת בדרך כלל באמצעות גרשיים כפולים ( מרכאות ), כקיצור לרשימה עם ערכי ה-unicode של התווים. לדוגמה, ניתן לייצג את המילה cat ( שמשמעותה בעברית חתול ) כך :<code>״cat״</code> וכך: <code>[99,97,116]</code>.
 
Records -{{קצרמר|תוכנה}}
 
== ראו גם ==
שורה 70 ⟵ 115:
== קישורים חיצוניים ==
{{אתר רשמי|www.erlang.org||||||||}}
 
[https://erlang.org/doc/apps/stdlib/stdlib.pdf הדוקומנטציה הרשמית של השפה ( מדריך בעל 555 עמודים )]
[[קטגוריה:שפות תכנות פונקציונליות]]
__לחיפוש__