دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۶
  • اردیبهشت

جلسه ۲۱-۰۲ : آرایه ها در زبان #F

  • دسته‌بندی‌ها :
جلسه ۲۱-۰۲ : آرایه ها در زبان #F
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش زبان برنامه نویسی #F همراهتون هستیم. به طور کلی زمانی که نیاز است مقادیر زیادی را ذخیره کنیم در این صورت نیاز به تعریف تعداد زیادی متغیر است. در این مواقع می توان از آرایه ها به جای متغیر ها استفاده نمود. پس از طریق آرایه  می توانیم بی شمار مقدار همنوع رو دخیره کنیم. همونطور که در جلسه قبل مشاهده نمودید، برخی از ویژگی های آرایه ها اشاره نمودیم . در این بخش نیز به ادامه مبحث آرایه ها در زبان #F می پردازیم و عملیات پایه در آرایه ها در زبان #F مانند Operators.max ،Operators.min و Operators.compare برای مقایسه عناصر در #F و… رو بررسی می نماییم. همراه ما بمانید.

      آرایه ها در زبان #F

      در ادامه بررسی آرایه ها در زبان #F ،جدول زیر عملیات پایه در آرایه ها در زبان #F را نشان می دهد.( ادامه جدول عملیات پایه در آرایه ها در زبان #F جلسه قبل )

      مقدارتوضیحات
      mapi2 : (int → ‘T1 → ‘T2 → ‘U) → ‘T1 [] → ‘T2 [] → ‘U []آرایه ای ایجاد می کند که عناصر آن نتایج اعمال تابع عرضه شده به عناصر متناظر دو مجموعه است و همچنین ایندکس عناصر را منتقل می کند.

      دو آرایه ورودی باید طول یکسان داشته باشند؛ در غیر این صورت، ArgumentException مطرح شده است.

      max : ‘T [] → ‘Tبزرگ ترین عناصر آرایه را بازگرداند. Operators.max برای مقایسه عناصر استفاده می شود.
      maxBy : (‘T → ‘U) → ‘T [] → ‘Tبزرگ ترین عناصر یک آرایه را برمی گرداند، در نتیجه تابع با Operators.max مقایسه می شود.
      min : (‘T [] → ‘Tکوچکترین عنصر از یک آرایه را بازگرداند. Operators.min برای مقایسه عناصر استفاده می شود.
      minBy : (‘T → ‘U) → ‘T [] → ‘Tکوچکترین عنصر از یک آرایه را بازگرداند. Operators.min برای مقایسه عناصر استفاده می شود.
      ofList : ‘T list → ‘T []آرایه را از لیست ارائه شده ایجاد می کند.
      ofSeq : seq<‘T> → ‘T []یک آرایه از آبجکت قابل بررسی ارائه شده ایجاد می کند.
       []partition : (‘T → bool) → ‘T [] → ‘T [] * ‘Tیک آرایه را به دو آرایه تقسیم می کند.

      یکی شامل عناصری که برای شرایط عرضه شده true را باز می گرداند و دیگری حاوی آن هایی است که برای آن false را باز می گرداند.

      []permute : (int → int) → ‘T [] → ‘Tعناصر یک آرایه را با توجه به جایگزینی مشخص تعویض می کند.
      pick : (‘T → ‘U option) → ‘T [] → ‘Uتابع عرضه شده را به عناصر متوالی یک آرایه ارائه شده اعمال می کند و نتیجه اول را باز می گرداند که در آن تابع (Some(x را برای برخی از x ها باز می گرداند.

      اگر تابع هرگز (Some(x را بازنگرداند، KeyNotFoundException اعلام شده است.

      reduce : (‘T → ‘T → ‘T) → ‘T [] → ‘Tیک تابع را برای هر عنصر آرایه اعمال می کند.

      یک آرگومان accumulator را از طریق محاسبات تریدینگ می کند.

      اگر تابع ورودی f باشد و عناصر آرایه i0 … iN باشد، این تابع f (… (f i0 i1) …) iN را محاسبه می کند. اگر آرایه صفر باشد، ArgumentException اعلام شده است.

      reduceBack : (‘T → ‘T → ‘T) → ‘T [] → ‘Tیک تابع را برای هر عنصر آرایه اعمال می کند.

      یک آرگومان accumulator را از طریق محاسبات تریدینگ می کند.

      اگر تابع ورودی f باشد و عناصر  i0 … iNهستند.

      این تابع ((f i0 (…(f iN-1 iN را محاسبه می کند.

      اگر آرایه صفر باشد، ArgumentException اعلام شده است.

      rev : ‘T [] → ‘T []ترتیب عناصر در یک آرایه ارائه شده را تغییر می دهد.
      scan : (‘State → ‘T → ‘State) → ‘State → ‘T [] → ‘State [])رفتارهایی مانند fold، اما نتایج متوسط ​​را با نتایج نهایی باز می گرداند.
      scanBack : (‘T → ‘State → ‘State) → ‘T [] → ‘State → ‘State []رفتارهایی مانند foldBack، اما نتایج واسط را با نتایج نهایی باز می گرداند.
      set : ‘T [] → int → ‘T → unitیک عنصر از یک آرایه را تعیین می کند.
      []sort : ‘T[] → ‘Tعناصر یک آرایه را مرتب می کند و آرایه جدید را باز می گرداند.

      Operators.compare برای مقایسه عناصر استفاده می شود.

      []sortBy : (‘T → ‘Key) → ‘T [] → ‘Tعناصر آرایه را با استفاده از تابع عرضه شده مرتب می کند تا عناصر را به نوعی که عملیات مرتب سازی بر اساس آن است، تبدیل کند.

      و یک آرایه جدید را بازگرداند. Operators.compare برای مقایسه عناصر استفاده می شود.

      sortInPlace : ‘T [] → unitعناصر یک آرایه را با تغییر آرایه در محل، با استفاده از تابع مقایسه شده ارائه می دهد. Operators.compare برای مقایسه عناصر استفاده می شود.
      sortInPlaceBy : (‘T → ‘Key) → ‘T [] → unitعناصر یک آرایه را با تغییر آرایه در محل، با استفاده از projection عرضه شده برای keys ها، مرتب می کند.

      Operators.compare برای مقایسه عناصر استفاده می شود.

      sortInPlaceWith : (‘T → ‘T → int) → ‘T [] → unitعناصر یک آرایه را با استفاده از تابع مقایسه شده ی ارائه شده، برای تغییر آرایه در محل مرتب می کند.
       []sortWith : (‘T → ‘T → int) → ‘T [] → ‘Tعناصر یک آرایه را با استفاده از تابع مقایسه شده ارائه شده مرتب می کند.

      و یک آرایه جدید را باز می گرداند.

      []sub : ‘T [] → int → int → ‘Tیک آرایه را ایجاد می کند که شامل subrange عرضه شده است .

      که با شروع index و length مشخص شده است.

      sum : ‘T [] → ^Tمجموع عناصر در آرایه را به دست می آورد.
      sumBy : (‘T → ^U) → ‘T [] → ^Uمجموع نتایج حاصل شده توسط اعمال یک تابع به هر عنصر آرایه را بر می گرداند.
      toList : ‘T [] → ‘T listآرایه ارائه شده را به لیست تبدیل می کند.
      <toSeq : ‘T [] → seq<‘Tآرایه ارائه شده را به عنوان دنباله ای مشاهده می کند.
      tryFind : (‘T → bool) → ‘T [] → ‘T optionعنصر اول را در آرایه ارائه شده بازمی گرداند که برای آن تابع عرضه شده true را برگرداند.

      اگر هیچ عنصری وجود نداشته باشد None را باز گرداند.

      tryFindIndex : (‘T → bool) → ‘T [] → int optionایندکس اول عنصر را در یک آرایه بر می گرداند که شرایط عرضه شده را برآورده می کند.
      tryPick : (‘T → ‘U option) → ‘T [] → ‘U optionتابع عرضه شده را به عناصر متوالی آرایه ارائه شده اعمال می کند و اولین نتیجه را باز می گرداند.

      که در آن تابع (Some(x را برای برخی از x باز می گرداند.

      اگر تابع هرگز برنگرداند (Some(x را  None بازگردانده می شود.

      []unzip : (‘T1 * ‘T2) [] → ‘T1 [] * ‘T2آرایه ای از جفت های چندگانه را به دو آرایه ی چند گانه تقسیم کرده است.
      unzip3 : (‘T1 * ‘T2 * ‘T3) [] → ‘T1 [] * ‘T2 [] * ‘T3 []آرایه چندتایی از سه عنصر را به سه آرایه جند تایی تقسیم می کند.
      zeroCreate : int → ‘T []یک آرایه ایجاد می کند که عناصر آن ابتدا به مقدار پیش فرض <Unchecked.defaultof <‘T تنظیم شده است.
      [](zip : ‘T1 [] → ‘T2 [] → (‘T1 * ‘T2دو آرایه را به یک آرایه ی چندتایی که دو عنصر دارد، ترکیب می کند.

      دو آرایه باید طول برابر داشته باشند؛ در غیر این صورت، ArgumentException مطرح شده است.

      zip3 : ‘T1 [] → ‘T2 [] → ‘T3 [] → (‘T1 * ‘T2 * 113 ‘T3) []سه آرایه را به یک آرایه ی چندتایی که سه عنصر دارد ترکیب می کند.

      سه آرایه باید طول مساوی داشته باشند؛ در غیر این صورت، ArgumentException مطرح شده است.

      خب اینم از عملیات پایه در آرایه ها در زبان #F ،در بخش بعد، استفاده از برخی از این ویژگی ها را خواهیم دید.

      کلام پایانی

      مبحث عملیات پایه در آرایه ها در زبان #F رو در این جا به پایان می رسونیم. در این بخش عملیاتی مانند Operators.max ،Operators.min و Operators.compare برای مقایسه عناصر در #F ،برای ترکیب دو آرایه با استفاده از zip ،

      تبدیل آرایه ارائه شده به لیست توسط toList و… رو بررسی نمودیم. در ادامه مبحث عملیات پایه در آرایه ها در زبان #F در جلسه بعد به بیان مثال هایی در این زمینه برای آشنایی بیش تر با این ویژگی ها می پردازیم.

      QR:  جلسه ۲۱-۰۲ : آرایه ها در زبان #F
      به اشتراک بگذارید