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



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

جلسه ۱۶-۰۲ : توالی در #F

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

      مقدمه

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

      دنباله یا توالی در #F

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

      جدول اعمال پایه ی توالی در #F نشان می دهد که عملیات پایه در نوع داده های توالی چگونه است.

      (ادامه جدول اعمال پایه ی توالی در #F جلسه قبل)

      last : seq<‘T> → ‘Tآخرین عنصر دنباله را برمی گرداند.
      length : seq<‘T> → intطول دنباله را برمی گرداند.
      <map : (‘T → ‘U) → seq<‘T> → seq<‘Uیک مجموعه جدید ایجاد می کند که عناصر آن نتایج اعمال تابع داده شده به هر یک از عناصر مجموعه است.

      تابع داده شده اعمال می شود به عنوان عناصر مورد نیاز با استفاده از روش MoveNext در enumerators بازیابی از object.

      map2 : (‘T1 → ‘T2 → ‘U) → seq<‘T1> → seq<‘T2> → seq<‘U>یک مجموعه جدید ایجاد می کند که عناصر آن نتایج اعمال تابع داده شده به جفت های متناظر عناصر از دو توالی است.

      اگر یک توالی ورودی کوتاه تر از دیگری باشد، سپس عناصر باقی مانده توالی طولانی، نادیده گرفته می شوند.

      <mapi : (int → ‘T → ‘U) → seq<‘T> → seq<‘Uیک مجموعه جدید ایجاد می کند که عناصر آن نتایج اعمال تابع داده شده به هر یک از عناصر مجموعه است.

      ایندکس integer یا عدد صحیح منتقل شده به تابع نشان دهنده این است که ایندکس (از ۰) عنصر تبدیل شده است.

      max : seq<‘T> → ‘Tبزرگترین عنصر از توالی را با استفاده از Operators.max مقایسه می کند.
      maxBy : (‘T → ‘U) → seq<‘T> → ‘Tبزرگترین بازه از تمام عناصر توالی را با استفاده از Operators.max در نتیجه تابع مقایسه می کند.
      min : seq<‘T> → ‘Tکمترین مقدار تمام عناصر توالی را با استفاده از Operators.min مقایسه می کند.
      minBy : (‘T → ‘U) → seq<‘T> → ‘Tکمترین مقدار از تمام عناصر دنباله را با استفاده از Operators.min در نتیجه تابع مقایسه می کند و برمی گرداند.
      nth : int → seq<‘T> → ‘Tعنصر nth در مجموعه را محاسبه می کند.
      <ofArray : ‘T array → seq<‘Tآرایه داده شده را به عنوان توالی نمایش می دهد.
      <ofList : ‘T list → seq<‘Tلیست داده شده را به عنوان دنباله ای نمایش می دهد.
      <pairwise : seq<‘T> → seq<‘T * ‘Tدنباله ای از هر عنصر را در توالی ورودی و predecessor آن بازمی گرداند، به استثنای عنصر اول که تنها به عنوان predecessor از عنصر دوم بازگشته است.
      pick : (‘T → ‘U option) → seq<‘T> → ‘Uتابع داده شده را به عناصر متوالی اعمال می کند،

      اولین مقدار را باز می گرداند که در آن تابع یک مقدار Some را باز گردانده است.

      <readonly : seq<‘T> → seq<‘Tیک دنباله ی  object جدید ایجاد می کند که  object داده شده را منتقل می کند.

      این تضمین می کند که دنباله اصلی نمی تواند دوباره توسط یک نوع cast کشف شود و تغییر یابد.

      برای مثال، اگر یک آرایه دنباله بازگشتی داده شود عناصر آرایه را بازمی گرداند،

      اما شما نمی توانید یک object توالی بازگشتی را به آرایه منتقل کنید.

      reduce : (‘T → ‘T → ‘T) → seq<‘T> → ‘Tیک تابع را برای هر عنصر دنباله اعمال می کند، یک آرگومان accumulator را از طریق محاسبات تریدینگ می کند.

      با اعمال تابع به دو عنصر اول شروع کنید. سپس این نتیجه را به تابع همراه با عنصر سوم و غیره تغذیه کنید. نتیجه نهایی را بردارید.

      scan : (‘State → ‘T → ‘State) → ‘State → seq<‘T> → seq<‘State>مانند Seq.fold، اما براساس on-demand محاسبه می شود و دنباله ای از نتایج واسطه و نهایی را به دست می آورد.
      <singleton : ‘T → seq<‘Tدنباله ای را که تنها یک آیتم را تولید می کند، بازمی گرداند.
      <skip : int → seq<‘T> → seq<‘Tبازگرداندن دنباله ای که تعداد مشخصی از عناصر توالی underlying را پرش یا skip می کند

      و سپس عناصر باقی مانده از دنباله را می دهد.

      skipWhile : (‘T → bool) → seq<‘T> → seq<‘T>دنباله ای را بازمی گرداند که وقتی تکرار می شود، عناصر توالی underlying را اسکیپ می کند، در حالی که پیش فرض داده شده بازگرداندن true است .

      و سپس عناصر باقی مانده از دنباله را می دهد.

      <sort : seq<‘T> → seq<‘Tتوالی مرتب شده توسط کلید ها را تولید می کند.
      sortBy : (‘T → ‘Key) → seq<‘T> → seq<‘T>یک تابع key-generating را به هر عنصر یک دنباله اعمال می کند.

      همچنین توالی مرتب شده توسط key ها را تولید می کند.

      key ها با استفاده از مقایسه generic مقایسه می شوند توسط Operators.compare .

      sum : seq<^T> → ^Tمجموع عناصر در دنباله را بازمی گرداند.
      sumByمجموع نتایج حاصل از اعمال تابع به هر عنصر دنباله را بازمی گرداند.
      <take : int → seq<‘T> → seq<‘Tاولین عناصر توالی را به تعداد مشخصی بازمی گرداند.
      <takeWhile : (‘T → bool) → seq<‘T> → seq<‘Tیک دنباله را بازمی گرداند که وقتی تکرار می شود، عناصر توالی underlying را تولید می کند در حالی که پیش فرض داده شده باز گرداندن true است و سپس عناصر دیگر را باز نمی گرداند.
      []toArray : seq<‘T> → ‘Tآرایه ای از مجموعه ی داده شده ایجاد می کند.
      toList : seq<‘T> → ‘T listیک لیست از مجموعه داده شده ایجاد می کند.
      <truncate : int → seq<‘T> → seq<‘Tیک دنباله یا توالی را بازمی گرداند وقتی که enumerated بازگشتی مقداری بیش از تعداد مشخص شده عناصر را نداشته باشد.
      tryFind : (‘T → bool) → seq<‘T> → ‘T optionاولین عنصر را برای این که تابع داده شده true  را برگرداند، بازمی گرداند.

      یا اگر هیچ عنصری وجود ندارد None را برمی گرداند.

      tryFindIndex : (‘T → bool) → seq<‘T> → int optionایندکس اولین عنصر را در دنباله ای که پیش فرض داده شده را برآورده می کند.

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

      tryPick : (‘T → ‘U option) → seq<‘T> → ‘U optionتابع داده شده را به عناصر متوالی اعمال می کند، اولین مقدار را باز می گرداند که تابع مقدار Some را باز گرداند.
      unfold : (‘State → ‘T * ‘State option) → ‘State → seq<‘T>یک دنباله ای را که شامل عناصر تولید شده توسط محاسبات داده شده است، بازمی گرداند.
      where : (‘T → bool) → seq<‘T> → seq<‘T>مجموعه جدیدی را که شامل تنها عناصری از مجموعه است را باز می گرداند که پیش فرض بازگرداندن true است ، با Seq.filter.
      windowed : int → seq<‘T> → seq<‘T []>دنباله ای را می دهد که پنجره های کشویی حاوی عناصر کشیده شده از توالی ورودی را تولید می کند.

      هر پنجره به عنوان یک آرایه تازه بازگشته است.

      zip : seq<‘T1> → seq<‘T2> → seq<‘T1 * ‘T2>دو توالی را به یک لیست از جفت ها متصل می کند. دو دنباله نیاز به یکسان بودن طول ندارد.

      زمانی که یک دنباله تمام می شود، هر عنصر باقی مانده در دنباله دیگر ، نادیده گرفته می شوند.

      zip3 : seq<‘T1> → seq<‘T2> → seq<‘T3> → seq<‘T1 * ‘T2 * ‘T3>سه توالی را در یک لیست سه گانه ترکیب می کند. توالی ها نیاز به طول های برابر ندارند .

      زمانی که یک دنباله تمام می شود، هر عنصر باقی مانده در دنباله دیگر ، نادیده گرفته می شوند.

      خب اینم پایان جدول اعمال پایه ی توالی در #F

      کلام پایانی

      در قسمت دوم بررسی جدول اعمال پایه ی توالی در #F هستیم.

      در این بخش با توالی یا دنباله در اف شارپ آشنا شدیم و مسائلی مانند مقایسه در توالی ها ،بازگرداندن مجموعه توالی ها ،ایجاد آرایه از مجموعه ی داده شده ،روش MoveNext و… رو بررسی نمودیم.

      در جلسه بعد مثال هایی راجع به توالی های بیان شده و جدول اعمال پایه ی توالی در #F داریم.

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