آموزش #F قسمت ۳

https://virgool.io/fsharp/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-f-%D9%82%D8%B3%D9%85%D8%AA-%DB%B2-zxnmqrlh4zjq

در این قسمت میخوام درباره لیست ها 📃 بگم

لیست ها برای ذخیره کردن چندین عدد باهمدیگه استفاده میشن، مثلا شما اعداد ۱ تا ۹ رو میخواید تو یک متغیر ذخیره کنید. راهش چیه ؟ لیست

کد زیر بنویسید و اجرا کنید و توضیحات خط به خط کد هم در پایین قرار داره. توضیحاتی که تو پستهای قبلی دادم دیگه تکرار نمیکنم پس خطهای تکراری رو برید از پست های قبل بخونید لطفا

// Learn more about F# at http://fsharp.org open System 
[<EntryPoint>] 
let main argv =
    let listEmpty = []
    let list123 = [ 1; 2; 3 ]
    let list1 = [ 1 .. 10 ]  
    let list2 = 100 :: list1
    let list3 = list1 @ list2
    printfn "list1.IsEmpty is %b" (list1.IsEmpty)
    printfn "list1.Length is %d" (list1.Length)
    printfn "list1.Head is %d" (list1.Head)
    printfn "list1.Item(1) is %d" (list1.Item(1))
    Console.ReadKey() |> ignore 

۴. یک لیست خالی برای شما ایجاد می کنه. تعریف لیست مثل بقیه متغیرهاست فرقش اینه که باید با کروشه اونو مشخص کنید که این متغیر یک لیسته

۵. یک لیست شامل عددهای ۱ و ۲و ۳ ایجاد می کنه

۶. یک لیست شامل عددهای ۱ تا ۱۰ ایجاد می کنه

۷. یک لیست جدید از روی لیست ۱ میسازه فقط عدد ۱۰۰ رو هم به اول اون لیست اضافه میکنه پس لیست دو شامل عددهای ۱۰۰ و عددهای ۱ تا ۱۰ هست.

۸. تمام اعضای لیست یک و لیست دو رو میبره توی لیست ۳ یعنی لیست ۳ شامل عددهای یک تا ده و صد و یک تا ده است( یک تا ده دوبار تکرار میشه تو این لیست چون توی هر دولیست ۱ و۲ هست)

۹. میگیم آیا لیست ۱ خالیه که معلومه جوابش غلطه پس false‌ بر میگردونه(چون ده تا عضو داره)

۱۰. میگه لیست ۱ چند تا عضو داره که جوابش میشه ۱۰ تا( از یک تا ۱۰)

۱۱. میگه عضو ابتدایی لیست ۱ چیه که معلومه جوابش میشه ۱

۱۲. میگه آیتم با ایندکس ۱ توی لیست ۱ که جوابش میشه ۲ چون برای شمارش ما باید توی برنامه نویسی از صفر بشماریم.(ایندکس گذاری در کدنویسی همیشه از صفره)

نکته: چطور میتونم یک لیست درست کنم شامل عددهای ۱ تا ۱۰۰ که فاصله عددها ۲ باشه؟ جواب:

let list4= [1..2..100] //[1,3,5,7,9,11,...,99]

حالا این خط مقایسه کنید با ایجاد همین لیست توی سی شارپ با حلقه🤣

List<int> mylist = new List<int> ();
for (int i = 1; i < 100;i+=2) {
                mylist.Add(i);
            }

نکته دوم اینه که ما نمیتونیم مثل خط ۶ برای عقب گرد استفاده کنیم یعنی از ده تا یک بریزیم توی لیست. برای این کار مثل کد زیر عمل کنید

let list6= [10..-1..1] // [10,9,8,7,6,5,4,3,2,1]

توضیح: علامت .. بهش میگیم range operator که اینجا به معنی تا هست و در دو نمونه کد بالا فاصله بین عددها رو هم میتونیم با این اپراتور مشخص کنیم. range operator تازه تو سی شارپ ۸ اضافه میشه به سی شارپ 😍 در حالی که توی اف شارپ و خیلی از زبونهای دیگه خیلی وقته وجود داره

توضیحات ابتدایی رو سعی می کنم خیلی سریع بگم و رد بشم تا برسیم به مثالهای کاربردی

https://virgool.io/fsharp/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-f-%D9%82%D8%B3%D9%85%D8%AA-%DB%B4-uhvoliggtgau