آموزش دونه:مرجع آموزش

Set ها در اف شارپ ( Fsharp Sets) آموزش برنامه نویسی اف شارپ #F

Fsharp Sets Fsharp Sets Fsharp Sets Fsharp Sets

اف شارپ

Sets در زبان #F

sets در #F یک ساختار داده است که به عنوان مجموعه ای از آیتم ها بدون حفظ ترتیبی که در آن آیتم ها وارد شده است عمل می کند. Sets اجازه نمی دهد ورودی های تکراری به مجموعه وارد شوند.

ایجاد Sets در زبان #F

Sets در زبان #F می توانند به روش های زیر ایجاد شوند:

  • با ایجاد یک Set خالی با استفاده از empty و اضافه کردن آیتم ها با استفاده از add function.
  • تبدیل توالی ها و لیست ها به Sets.

برنامه زیر تکنیک ها نشان می دهد.( ایجاد Sets در زبان #F )

خروجی

حال که ایجاد Sets در زبان #F رو می دونیم وارد مبحث بعدی یعنی عملیات پایه در Sets می شویم.

عملیات پایه در Sets در  #F

جدول زیر عملیات اساسی در Sets را نشان می دهد.

مقدارتوضیحات
<add : ‘T → Set<‘T> → Set<‘Tیک Set جدید را با یک عنصر اضافه شده به Set بازمی گرداند. بدون استثنا اگر Set قبلا شامل عنصر داده شده است اعلام می شود.
contains : ‘T → Set<‘T> → boolاگر عنصر داده شده در Set داده شده است، true ارزیابی می شود.
count : Set<‘T> → intتعداد عناصر موجود در Set را بر می گرداند.
<difference : Set<‘T> → Set<‘T> → Set<‘Tیک Set جدید با عناصری از Set دوم که از اولی حذف شده را برمی گرداند.
<empty : Set<‘TSet خالی برای نوع مشخص شده.
exists : (‘T → bool) → Set<‘T> → boolتست این که هر عنصر از مجموعه منطبق بر پیش فرض داده شده است.

اگر تابع ورودی پیش فرض و عناصر i0 … iN باشد، این تابع محاسبه می کند پیش فرض i0 یا … یا پیش فرض iN را.

<filter : (‘T → bool) → Set<‘T> → Set<‘Tمجموعه جدیدی را که شامل تنها عناصری از مجموعه است را بازمی گرداند، برای این که پیش فرض داده شده true را برگرداند .
fold : (‘State → ‘T → ‘State) → ‘State → Set<‘T> → ‘Stateتابع accumulating داده شده را به تمام عناصر Set اعمال می کند.
foldBack : (‘T → ‘State → ‘State) → Set<‘T> → ‘State → ‘Stateتابع accumulating داده شده را به تمام عناصر Set اعمال می کند.
forall : (‘T → bool) → Set<‘T> → boolتست اینکه تمام عناصر مجموعه بر اساس پیش فرض داده شده است.

اگر تابع ورودی p باشد و عناصر i0 … iN باشد، این تابع p i0 && … && p iN را محاسبه می کند.

<intersect : Set<‘T> → Set<‘T> → Set<‘Tمحل برخورد یا فصل مشترک دو Set را محاسبه می کند.
<intersectMany : seq<Set<‘T>> → Set<‘Tتقاطع یک توالی sets را محاسبه می کند. دنباله باید خالی(non-empty) نباشد.
isEmpty : Set<‘T> → boolاگر Set خالی باشد، true می شود.
isProperSubset : Set<‘T> → Set<‘T> → boolاگر تمام عناصر set اول در set دوم هستند و حداقل یک عنصر از دومی در اولی نیست، true ارزیابی می شود.
isProperSuperset : Set<‘T> → Set<‘T> → boolاگر تمام عناصر set دوم در اولی هستند و حداقل یک عنصر از اولی در دومی نیست. true ارزیابی می شود.
isSubset : Set<‘T> → Set<‘T> → boolاگر تمام عناصر set اول در set دوم هستند .true ارزیابی می شود.
isSuperset : Set<‘T> → Set<‘T> → boolاگر تمام عناصر set دوم در اولی هستند. true ارزیابی می شود.
iter : (‘T → unit) → Set<‘T> → unitتابع داده شده به هر عنصر set اعمال می شود، به ترتیب با توجه به تابع مقایسه یا comparison .
<map : (‘T → ‘U) → Set<‘T> → Set<‘Uیک مجموعه جدید را که شامل نتایج اعمال تابع داده شده به هر عنصری از set ورودی است، را بازمی گرداند.
maxElement : Set<‘T> → ‘Tبالاترین عنصر در set را بر اساس دستورالعمل مورد استفاده برای set بر می گرداند.
minElement : Set<‘T> → ‘Tکمترین عنصر در set را بر اساس دستورالعمل مورد استفاده برای set می گیرد.
<ofArray : ‘T array → Set<‘Tset ی از مجموعه ای که حاوی عناصر مشابه به عنوان آرایه های داده می شود ایجاد می کند.
<ofList : ‘T list → Set<‘Tیک set را ایجاد می کند که شامل عناصر مشابه به عنوان لیست داده شده است.
<ofSeq : seq<‘T> → Set<‘Tیک مجموعه جدید از آبجکت قابل شمارش داده شده را ایجاد می کند.
partition : (‘T → bool) → Set<‘T> → Set<‘T> * Set<‘T>set را به دو set حاوی عناصر تقسیم می کند.

برای این که پیش فرض داده شده به ترتیب true و false را برگرداند.

<remove : ‘T → Set<‘T> → Set<‘Tیک set جدید را با عنصر مشخص شده ی حذف شده باز می گرداند. اگر set شامل عنصر داده شده نباشد، بدون استثنائی اعلام شده است.
<singleton : ‘T → Set<‘Tset شامل عنصر داده شده است.
toArray : Set<‘T> → ‘T arrayآرایه ای را ایجاد می کند که شامل عناصری از set به ترتیب است.
toList : Set<‘T> → ‘T listلیستی را ایجاد می کند که شامل عناصر set به ترتیب است.
<toSeq : Set<‘T> → seq<‘Tیک نمایش منظم مجموعه را به عنوان یک آبجکت قابل شمارش بازمی گرداند.
<union : Set<‘T> → Set<‘T> → Set<‘Tunion دو set را محاسبه می کند.
<unionMany : seq<Set<‘T>> → Set<‘Tunion یک set متوالی را محاسبه می کند.

مثال

خروجی

 

مطالب مرتبط