مقدمة الى لغة البرمجة #f - أيمن محمدعبد العزيز عبد الله...

29
ﺻﻔﺤﺔ ﺭﻗﻢ١ ﻤﻘﺩﻤﺔ ﻓﻰ ﻝﻐﺔF# SHARP الF# ت ال ر اdotnet ت ال وVisual Studio 2010 ) ﻜﺘﺎ ﻤﺠﻤﻊ ﻤﻥ ﻤﺼﺎﺩﺭ ﻭ ﻤﻘﺎﻻﺕ ﻤﺘﻌﺩﺩﺓ( ﺍﻹ ﺼﺩﺍﺭ ﺍﻻﻭل ﺍﻋﺩﺍﺩ\ ﺃﻴﻤﻥ ﻤﺤﻤﺩ ﻋﺒﺩ ﺍﻝﻌﺯﻴﺯ ﻋﺒﺩ ﺍﷲ ﺘﻤﻴﻡ[email protected] ﺍﻝﺤﻘﻭﻕ ﻤﺤﻔﻭﻅﺔ ﻝﻜل ﺍ ﻝﻤﺴﻠﻤﻴﻥ ﺍﻻﺜﻨﻴﻥ١٢ ﺭﺒﻴﻊ ﺍﻭل ﻝﻌﺎﻡ١٤٣٠ ﻫـ ﺍﻝﻤﻭﺍﻓﻕ٩ - ٣ - ٢٠٠٩

Upload: ali-dz

Post on 10-Jan-2017

25 views

Category:

Education


2 download

TRANSCRIPT

Page 1: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١صفحة رقم

مقدمة فى لغة

F# SHARP ��ت ال #F ال� � ��ت ال dotnet ا���� �� ر���� Visual Studio 2010 و�

) مجمع من مصادر و مقاالت متعددةب كتا(

صدار االول اإل

تميمعبد اهللا أيمن محمد عبد العزيز \اعداد م

[email protected]

لمسلمينالحقوق محفوظة لكل ا

٢٠٠٩-٣-٩ هـ الموافق ١٤٣٠ ربيع اول لعام ١٢ االثنين

Page 2: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢صفحة رقم

فهرس الكتاب

.#Fمثال لكود مكتوب بلغة -١

.مقدمة منقولة من مبرمجين عرب -٢

.و مواقع اجنبية اخرىمقدمة منقولة من موقع مايكروسوفت -٣

.متطلبات التحميل و التشغيل -٤

.)VISUAL STUDIO 2008(على ) #F(تنصيب لغة -٥

.#Fببعض قواعد لغة تعريف -٦

Page 3: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٣صفحة رقم

#Fمثال لكود مكتوب بلغة

Page 4: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٤صفحة رقم

مقدمة منقولة من مبرمجين عرب

)Din-Mohamed Gamal El المشرفمنقولة من منتدى فيجويل بيسك بقلم(مقدمة

)١مقدمة رقم (

. 23. ا1 ا0/� ا0/

@0و�?<� <= ا;و>� ا;: 90 783ا�6رت 05آ�� 96A6Bا �B�0�ا ��C =ا;�6ارات ا;و #F

�تDEFه= ا ��02 H< ا;ن �<?J6> 9د?L?�ا �B�0�ت ا�� ا/2 M3 ا/2� �NC8BO =Fوا ��Cا PCO => �QA6�ا;ن ا

. �� ال don syme 63ْا�TO J ل?U2�وه? ا #F �� ء�D3 => 0 @HF96 اA6L96/ =CJ �B�03 �� Mآ W �A �� M�XO ، =@

=D�O ان Z [F2O 96/وا ��ك �Dن ه?@O �HCF]�ا �B�0�ت ا�� ا0X8ات �J.

Wات �� ال��F #

M @�A #F �F3�_ �� ن?@O أن "Static" 90 �F� او Dynamic cH< => ال �H� تd:6 اeو �e?ا Dynamic ال �� �

Python.

HF0ات اA?TFا�U � � CJ� ال MQ� ت�<� MATLAB ا�

kl�m?ا =CJ 6�F8O �B�03 �� (Functional Programming language)ال �� MQ� ML

2 P دوت >� (dotnet framework) ا�F[6ام 3 U� ا6وت >� B?ال 3H2= �5رب او اا MQ�

w�x� w �?O @?دا(profiling) 2= �5ربا �� MQ�

EA(start up) 0?مTe �eو => z��<0�6ام ا;دا9 ا]Fا� {A0| J 6اL NGEN.exe .

M @�A F# M:6اFا(integration) ��ت ا6وت >� ا;:0ي �

�� الJ �[ 23 9d�< �<9 آ�dه F# �DJ �F@D�3ذن ا1 و� ��د�Eم ا�A;ا => M THF�3.

) !!! BoriS!!! من المشرف١ردود على المقدمة رقم (

WLاك ا1 : 0ا ا:�

} اذا ����C8O � ...

Ngen الJ رة��J ?ه MQ� 0:ا .L0F� Jit ?أ:0ة د<�8 وا/6ة وه �ا �أو � z��<0�ا ��L0F3 م?EA �D@و �ر ا�TF:أ Native

Image Generator ��2Aو Pre-JIT Compiler

Page 5: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٥صفحة رقم

) Boutemine Oualidمثال منقول من المشرف ٢ة رقم مقدم(

�Oو03آ� ��8O 1و ر/�� ا .@ CJ مx2ا �B�0�ا ��ال �� � �TC]F6 ا�e�8 وF�� 6L =و ه .C8Fا �[ 23 9dه Objective Camel ���: =و و ه ��A0C � و ; �HT3 أ��� l�AW Hا

�� و O Caml أ>� ��C8O ال(أ>�N3 wT ا�:?ة TD@. ا6م eأ Pd) ه9d ا��C <= ا��Aم ا�Eد�� ان �5ءJ 6روس783 ا Z��� ��8O 1ا

783 ا���� �ت: و ه�D ا6رس ا�ول .ا�/0ف / ���2��� F# �� ال -1 � M@X3 6�F8O أ���= �CJ ا�0��B ا -2Hlو�� ��� Dl�@ا c � و Hl��? �L?Fا. 3- W�0�3 =NFDO � B�0�ا��]0 ا Z �L ;; 4- �B�03 �� � @ ��DAد. 5- � :783 اE?ا6J ا����

0 >�6أ دا��l ب -�F� kA08F let .أو; _. ا� � l6اF3;ا �� Eا k �D أن >�@�A 0 و 683ه� �F�ا �= >� <= select case ال -Hا (switch =>2= �5ربا (=�Fا M@Xا �CJ �F@O

:ر��

mutch [variable] with case1 -> action1 | case2 -> action2 | n-> actionx;;

� / mutch {>ا?O select case [variable] 0 �F�ر>� ا�E�ا � CJ M�8< يdا.

case1: �ا�و ���رن(ا�E< =Fا �� Eا �N3) <= ا2= �5رب: �MQ ال :<-

actionx ��/ => �N3 م?E< =Fا � C�80ط اXء ا�H Fا� | MQ� or أو elseif ء�XO آ��.

n MQ� ;ت ا�:0ى��ا => case else أو �< =� Hا => default 2= �5ربا =>.

�A0ار@Fت ا�EC�ا :ر��

for x=1 to 10 do .... done;;

:ر��

while condition do .... done;;

ا�J0HFت :ر��

if condition then begin ...;; ...;; end else begin end;;

kA08O ا6وال :ر��

let functionName x y z = begin ... end;;

� / x y z �Aد�J 0اتF ه= 03ا�

� 8L0اF6وال اا (�A0دادFا)

let rec FunctionName x y z = begin end;;

Page 6: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٦صفحة رقم

اجنبية اخرىمقدمة منقولة من موقع مايكروسوفت و مواقع

)بدون ترجمة(من مواقع متعددة) #Fاف شارب (تعريف للغة

التعريف المصدر\ الموقعmsdn.microsoft.com

F# is a functional programming language for the .NET Framework. It combines the succinct, expressive, and compositional style of functional programming with the runtime, libraries, interoperability, and object model of .NET

FORUM The Origin of F# At the heart of F# lies Objective Caml, or OCaml, and the .NET language C#. C#, as you probably already know, is based upon C/C++ and Java. OCaml is the latest incarnation of the Caml language. Caml is a dialect of ML. F# is, in essence, another dialect, or "manifestation" as Microsoft calls it, of a functional ML-like language mixed with the power of C#. What is ML? ML is a functional language (similar to Scheme, as we discussed above) created about 20 years ago, primarily for research. ML is short for "meta-language", and as the name implies ML is primarily used to manipulate other languages. So a compiler, for example, is a great application to write using ML. ML creates an entirely different development environment, including interactive compilers that respond as you code. A very different mode of thinking is required to code in a functional language. Now, it's not LSD for developers, it's fairly mind-blowing.

F# in 20 Minutes - Part I

F# is a functional programming language built on .NET. Just like C# and VB.NET, F# can take advantage of core libraries such as Windows Presentation Foundation, Windows Communication Foundation, Visual Studio Tools for Office, etc. With F# you can even write XBox games using XNA. But just because you can write code in a new language doesn't mean you should. So why use F#? Because being a functional language, F# makes writing some classes of programs much easier than its imperative cousins like C#. Parallel Programming and Language-Oriented Programming are two such domains that can be expressed easily in F#.

Page 7: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٧صفحة رقم

متطلبات التحميل و التشغيل Brief Description F# is a type-safe, scalable language for the .NET platform that supports both functional and object-oriented programming. This CTP release includes the F# compiler and tools, as well as Visual Studio 2008 integration for F# development. Microsoft F#, Community Technology Preview Quick Details Version: 1.9.6.2 Date Published: 9/5/2008 Language: English Download Size: 13.4 MB - 13.9 MB* *Download size depends on selected download components. System Requirements Supported Operating Systems: Windows Vista; Windows XP Required software: .NET Framework 2.0 Optional software: Visual Studio 2008 or the Visual Studio 2008 Shell.

Page 8: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٨صفحة رقم

)VISUAL STUDIO 2008(على ) #F(تنصيب لغة

من موقع مايكروسوفت على الوصلة التاليةf# compiler قم بتحميل اخر اصدار من -١

aspx.release/fsharp/projects/cambridge/um/us-en/com.microsoft.research://http

.لخطوة االولى على الوندوز ا)f# compiler(ا قمت بتحميل المبعد) visual studio 2008(للبدء ادخل على -٢ اختار مشروع جديد اختار -٣)"Other Project Types" ( كما فى الصورة التالية ثم اختارf# projects

Page 9: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٩صفحة رقم

. تاكدت انه تم تحميل و تنصيب الملف بنجاح#f بنجاحك فى بدئ مشروع جديد بلغة -٤

اذهب الى Tools > Add-in Manager ...

كما فى الشكل التالى فهذا معناة وجود "F# Interactive for Visual Studio"فى حالة عدم وجود -٧ .١مشكلة فى الملف الذى قمت بتحميلة مسبقا فى الخطوة رقم

. و اختار الخانتين ثم اضغط موافق "F# Interactive for Visual Studio"قم باختيار -٨

Page 10: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١٠صفحة رقم

قم باضافة عنصر جديد لصفحتك كما فى الصورة #fيسية لمشروعك باستخدام لغة فى الصفحة الرئ -٩

.التالية

f# source fileاختار -١٠

Page 11: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١١صفحة رقم

كما فى (++vb,c#,c) التى ستقوم باستخدامها فى البرمجة مثل لغات ال fs.* سيظر لك صفحة جديدة بامتداد -١٠ .الشكل التالى

Page 12: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١٢صفحة رقم

#Fببعض قواعد لغة تعريف

:GHIJKLت

IDENTIFIERS

��ت� �ات ��� ���� ا��� ا�� �ء ه� ا���� �' &% ��$#ن ا��� و وا�!وال ا�# 0 $% /�. وا�ر,�م ا�*�وف &% &) ��ت 1/!� � 5#ل �0)�وز 1 ان 29:0 ا���8!ام و�$% /�ف 32 ���0' 5#�4� 230 ان ا�� �% ا� '�<� /�. ر&#ز =

�?< ان� �>�' �#ى ا��E�رAB0 �C D@ 1 ا�Gزا ا�#&�� ا�< &% ا�و�� ���� ا�

<P>CHAR ف�/</P> <P>INT >,ر O�*P ��3,</P>

<P>LONG >,ر O�*P 20#5 </P> <P>FLOAT >,ر �T�T/ اي 'V '&W� '0�X�</P>

<P>DOUBLE >,ر �T�T/ [��9& 'V '&W� '0�X�</P>

�E�رة ا�:�#ت %� �& 32 _V�C� l/ ا��,< �k8ن single precision �^j0 و�$% �C _^0#V#�^[ ر,< mTC V_ و� �>�u?#&( ،l أو ����& 64 _V) _V l&Wj��) u��C l/ ا��,< �k8ن double precision ال أ&�

>,��� O�*3ا� ،�,�Eر وا�#�$��(

Page 13: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١٣صفحة رقم

ABCام واGHIJKL مMNOJ PQKIQء اSTQا PUالF#WXواYا ZX [XK\IQا PU و A]Q ان _`aIJ F#bcd PIQا AbeNfQت اK]bQا hX ijeQ [آ lmW\d nOX oWe]IX) pqر ،tu(.... vIweq لKxاد G\L We]IwQع اMu GmG{IL KBj|OL مMNd h}Q .

١- Pb� [xء ادG�bQ

����������������� ������� �������������������������������� �� ��!:

�Dا P 0N�F�>d � �Fة ا.

)١(��� ر��

١- � �� �� ��ن ����� اآ�� ا��� ا�� ";;" %$��� ب #f"!� ا�وا�� ال

���

����

�/�ف و "(ف �-, �� #f"+*(م �'�ر ال ."IDENTIFIERS �"�� "it ��'2�2 01+/� ا

��+* �� ا��� 2/�٤٢ اد�4ل ا� ��+���� ) int ر�� :'+9 ( و ه+� �+�� ر��+� %� ا �/�ف +*�)�(

� ) .it(/�ف �'=(>� ;� ا

.٢ ر�� آ�� ه( �(A(ع �� ?(رة

)�(��� ر��

Page 14: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١٤صفحة رقم

BCAا �D � �� Enterاآ�� ا��� ا

�; ��+* �اGه و �*(م E=F ��+"" "it ا +� ;� �=H الG4 ��/�ف ا�� �+, ا *+� اI session ���JKان ��� ا � . ا

���

it��

)�(��� ر��

BCAا �D � �� Enterاآ�� ا��� ا

���

������

���L� M��4 �;�A�� ��� �� ا�٤٢Mا � ا� �+���V '&W' اي /�T�T ر,< P>FLOAT> "+�� ا �/�ف '0�X�</P>

Page 15: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١٥صفحة رقم

BCAا �D � �� Enterاآ�� ا��� ا

F#

����

�� ;� ا���0س �Oدوج +* �� ا�Q� M " "�/2 وA, ا� �+�����Fوف او ار��م) string("+�� ا �/�ف )�R� اء آ�ن)".

�)٥(��� ر��

Page 16: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١٦صفحة رقم

١- 8F6اما]F��3 M��

Tuples

�ُ�ِ��W� W+R��0 ا�"�/��M �/2ة ا�(اع �W ا 0+���ت ;� F*� واW)tuples ( �X� 2F ال .....).�Fوف،%�ر�] ، ر��(ا BCAا �D � �� Enterاآ�� ا��� ا

���

���� ���� �����

�a+ه ��� M+?� ���� ر�� :'+9 و �++� W+�� (“int * string”)%� اد�4ل �+

�+و��� %� ا �/�ف +* �� ان ا� �� � ��( ا�و����� ( �+��X (و ا�����. (

)٦(��� ر��

� W���ُ)�up�� (� ��� .2ة �+� و +B*; H زوW� W+I ا *+� ان �'�(ى

BCAا �D � �� Enterاآ�� ا��� ا

���

���� ���� ��� �������

��Xل ا e��f %� اد�4ل �=�٣;� ا�h� �+� � و ه� �� ��%� آ���:

“int * string * float”

)٧(��� ر��

Page 17: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١٧صفحة رقم

. ) Functions(ا�F[6ام ا6وال -٢Eآ

�C ال �;f# 2وال .�ن ا 2وال ��0رة �values ( �+� W(و ا *+� ) 2I)� � )functions اى ;�ق �� �+W ا

�/�ف ��X اى �+�� ا�4ى ��+* . و ���W ا�!�ء ا

BCAا �D � �� Enterاآ�� ا��� ا

���

fun x -� x � ���

)٨(��� ر��

� ١+�-�ف ا +�� آ��it" w"و ��� ان ا�4 �+�� �f$2ة ا

x�+��;;

�� )ا 2ا � ا x ) �*��f و ا �� %��O ا � "it" ا � �٤١*(م ��"$�د �+

BCAا �D � �� Enterاآ�� ا��� ا

���

it ����

�+y��$ ٤٢ = ١+٤١"��(ن ا $�+�R ا

Page 18: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١٨صفحة رقم

)٩(��� ر��

"it ""$*(م ���0�4ر ا�4 �+�� ل

���

it��

$� ه$� ان e*'�"it" ا�ول � � �/2 �'�(ى �+�� ا 2ا 'x' ����+� wآ�� �� ���� ا�ن ٤١و ا+� w'0:٤٢ و ا

�� ا 2وال دون %C++�ا | �Gو +� E=' �� ��1*� ا�4ى � . "(ف �*(م ;� OIء اW� �4 ا �Lح �� �/�ف

)١٠(��� ر��

Page 19: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

١٩صفحة رقم

��م ا"�2hا - ٣�� �'R(زة ا Let” �C“ا �; #F

�C �� ��C+�ات ���W ا"$�د ا *+� ا +�� #F � %'�(ى � G| �/�ف ا�"�"� ا �9 ��"$�د �+�� ا � ُ�ىGا ”2h�f$" “letم اf� ف�/.

BCAا �D � �� Enterاآ�� ا��� ا

���

��t � � ����

)١١(��� ر��

���Xل ا e��f %� ا"$�د �+�� ر� ��C+� ;=� ا .a � ا � ا

��+� W� 2آ�� � a و ���$$� ا�� .������ ا��� ا

���

���

)١٢(��� ر��

Page 20: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢٠صفحة رقم

�C ال �; f# �+C�% � M���D ��% ����; �+C�� M$+/� �� . �/2 ا�!�ء �+

(i.e. “let x = �;;”)

�� ا+* �$M �*(م ��"�2hام ا ���2* �� E=�'� 2�2ةI �� � ا�!�ءة �+�F �; و B*; 2�2ةR .

(i.e. “let x = ‘forty two’”)

�ُ ��W ا"�2hام ا��X� �+��f' �+�ت ا�/ ;;#"a /�ف ;� ا

�, ����A;� ٤٢آ��F a w+� ان ا�4 �+�� ل I �+������ ا�"�"+� ١ و "(ف �*(م �/+� � . ا

���

� � ���

)١٣(��� ر��

+C��� ��W ا��دة EF � �a ا�| �� ��K ا�M %� ا"$�د �+�� 2�2Iة � � W� ��M ا ��f*� و +*� E=�'� زال � M$� ;��M �*(م ��"�2hا��� و

��+ .ا"�2hا��� ��ة ا�4ى او ا (:(ل ا

���

��t � � ���

���

)١٤(��� ر��

Page 21: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢١صفحة رقم

�*��f �� ا+* �+� ا)$� e� ا�-� ���W ا"$�د �+�� 2�2Iة � %�/

��+� e��f ��Xل ا � "$*(م ��"$�د �+�� �?+� ا +�� ٤٢*2ر ب آ��w ر��� و % Fa+� ;� ا�� ��Xل ا string و �$$� ;� ا

���

��t � � ����

)١٥(��� ر��

Page 22: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢٢صفحة رقم

))identifiers�tuples ( Z(د�z ال -٤

2Fف وا�/� � ��W ا"$�د �2ة �+� ا�

���D ف ر�� و�/�� �*F ان ��(ن اول �X� و ه� Q� �*FGا

� �� ��Xل ا �/�ف "$*(م ���!�ء ;� ا �� ر��+� a ا+� ٤٢ �+?� ���H“ و �+�����”

�a+ه ������ * ����� �+%�� �� .

���

��t � � ���� ���� �����

)١٦(��� ر��

W+� � وI(د �+���ن �e��1 W ا 2ا�F �; �:ا); ��� W��� fst and snd ف�/� �; �� �'+� �*(م ��"�2hام اول �+

�� ;� �/�ف ا+� ���D 2�2 وI 2�2I �4.

� �� ��Xل ا :آ�� ;� ا

���

��t b � fst ���

��t c � snd ���

�+?� ��+� ���� �/�ف ا �/�ف ا�ول �+�� ر�+�� و ا �!�ء ا�� �$�� �+F.

� �� �e��1 W ا��� ا ��+ :و ���$$� ��Lه2ة ا *+� ا �� %� ا"$�ده� ا

���

b��

c��

Page 23: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢٣صفحة رقم

)١٧(��� ر��

�/�ف ا�"�"� ���W ا�-� ا��دة ا"$�د ا aو %(ز�, ا *+� ا � ا

:��Xل

���

��t �b� c� � ���

b��

c��

)١٨(��� ر��

�� ;� ال +� W� �X2ام اآh�"ا � �F �;tuple W+� �f� W!+, ا"�2hام ا 2ا f � and �d

�!4 �y�"و %��� ر ��+�W "+'2ث 4!+� W� �+* و �$2 �'�و � ا"�2hا��� �/2 ز��دة �2د ا

Page 24: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢٤صفحة رقم

��0رة �tuple a W �+� ا � ال ٣$� ���A;� "$*(م ه �������, a ����� and a f���.� �� ا �(ا�

���

��t � � ���� ���� ��� �������

)١٩(��� ر��

W+� 2$ �'� � ا"�2hام ا 2ا� �Dfst and snd � �� � ا!h : "+��� ا

)٢٠(��� ر��

���� 2Fى آ� � ��"$�د آ� OIء �� � "$*(م ���� ��Xل ا : ;� ا

���

��t �b� c� d� � ���

Page 25: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢٥صفحة رقم

�� �+� �f$2ة �� OIء ;� ال � �$�?F ن)�$;tuple

� �� .آ�� ;� ا ��L ا

)٢١(��� ر��

� �� ��Xل ا �� آ� �$?� آ�� ;� ا+� W� 2آ�� ��W ا�:

���

b��

c��

d��

)٢٢(��� ر��

Page 26: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢٦صفحة رقم

F �-ا� W���G ال W� �+� فtuple

�� وا2Fة و Fا اG"$*(م ;� ه+� �����Xل ����*�ء G ,A)� ��0� ;$*(م ���ن ا *+� ا �� � ���2ه� _ ف ا

�D ��� ا��4ى �*(م �+* �$� ��"$�د D"$�د ا � ا� � �� ا+� �)��e(

���

��t �_� �� _� � ���

)٢٣(��� ر��

� �f$2ة ا �� ا+* � eو ��L� 2$ه2ة ا �+��X �� ا+* tuple و��2Iه� ا

)٢٤(��� ر��

Page 27: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢٧صفحة رقم

اPQوال

�=� ;� #fو�ن �C ال �h� �� �W ا 0+���ت ا)�R� �1�f0� ا��� ����+$� 2Iا ا �/��� �, ا 2وال G %�/��� �, ا 2وال � ��f� ا.

+� ��Lح آ+� %�/��� �C ال �� .�, ا 2وال #f و "$*(م ;� ا h!(ات ا

عرفاسناد الدالة اىل م

��Xل "$�/�� آ+� انG;� ه ��W ا"$�ده� ا � ُ�ا ا� �+� W� ./�ف ا 2وال ��0رة

�ُ � ���dd(/�ف "$*(م �0$�ء دا � و "$*(م ��"$�د �+���� ا��Nu�b��. (

���

��t �ddT�nT�Numb�r � �fun x -� x � �����

�/�ف �$� ��"$�د ا� e��f ��Xل ا ���dd(;� ا��Nu�b��fu(ا � ا 2ا � F+� ان %/��� ا 2ا � ا�"�"� ) �(

�+C�� )�D )x ا"� ا

�� �D G ا ��f ا+* �� ا� ).�D )x�+��0 ;� ا $���� �'�(ى ا 2ا � )<-(ى �2ل

)٢٥(��� ر��

�C�� e��f �/�ف #�CL% 2/� f ا��� ا $� ان ا ��< addTenToNumber ر�� M9%� %*��2ة ا�+':

)int -> int(و �/!� ��+M�R ���� :'+9 �+� �ر��م :'+'� G و ��4

Page 28: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢٨صفحة رقم

�� ���(I(د ;� ا 2ا � ) x(/�ف"$*(م ا�ن ���!�ء �+ ���dd(ا��Nu�b��$� ���y�$0 ;� ا )!hة ( �� �� ا

�*��f ا

��+� �y�!� � ٣٢"$*(م ���� ��Xل ا . آ�� ;� ا

���

�ddT�nT�Numb�r '���

Page 29: مقدمة الى لغة البرمجة #F  - أيمن محمدعبد العزيز عبد الله تميم - طبعة 2009

٢٩صفحة رقم

��4م

�f�FااG2 ا� ان ��(ن ه$� �C اول آ��ب ���� ا ���ب �; F#

���h� در�?� W� M%ا�*; �I�%��2*� د�R� ان ��(ن w+=در اآ��?� �� ا* و

W� �C� �� 01+/� هGة ا���f*2����0 ان ��/�ف . ا �� "+�(ن �� ��ن ��+� ;� ا

� ا �ا����وو �� �?�در2 �$�ذن ا� ا ���ب ا اآ���ل ا

) F# W� اف��Fا� ��F 20ا�� )ا

9 دو� �: W� ��)f$%��y��