ch
Feedback
Programming ∀

Programming ∀

前往频道在 Telegram

Ushbu kanalda IT va Dasturlashga aloqador mavzularda subyektiv fikrlarimni bayon qilaman.

显示更多
1 217
订阅者
无数据24 小时
-87
-3530
帖子存档
Lekin qanaqasiga 🤷 Coffe ko’pigi teng yarmini tashkil qilmaydiku😔 Yetkazib berilgan coffe ham umuman boshqa turdagi. Mana h
+1
Lekin qanaqasiga 🤷 Coffe ko’pigi teng yarmini tashkil qilmaydiku😔 Yetkazib berilgan coffe ham umuman boshqa turdagi. Mana haqiqiy exeption ))) Albatta cafeda zakaz ko’p bo’lgan va adashib qolgan. Ammo hechkim report qilmagan shekilli faqat man report qilganim uchun gap topolmay anashunday javob berishyabti. Ichimliklar uchun ham aniq tiplar kerak deb doyim aytaman. Lekin tog’ri tushuntirishga 5 baho. O’zim ham ishonay dedim operator gaplariga…

Savol kelibti Pattern matching va ADT shular haqida ma'lumot bera olasizmi ? Pattern matching bu jsdagi switch case mi 🤔? Javob: Pattern matching: 1. Hamma case statement value return qiladi. Bu degani qaysi casega match bo'lsa shu yerda return qilinadi. Match block expression statement emas.

def matchTest(x: Int): String = x match
  case 1 => "one"
  case 2 => "two"
  case _ => "other"

matchTest(3)  // returns other
matchTest(1)  // returns one
2. Switch case primitiv tiplar va enumlarga ishlaydi. Pattern matching unaqa emas. Tuple, List yana boshqa turli tiplarga ishlayveradi(turli tillarda bazi farqlar borligi uchun o'zingiz yoqtirgan tildagi pattern matchingi ko'rishingiz mumkin). Turli murakkab tiplarga ham match ishlaydi. Quyida rust va scala misolida ko'rasiz.

let p = Point { x: 0, y: 7 };

    match p {
        Point { x, y: 0 } => println!("On the x axis at {x}"),
        Point { x: 0, y } => println!("On the y axis at {y}"),
        Point { x, y } => {
            println!("On neither axis: ({x}, {y})");
        }
    }

val countingList = List(1,2,3,42)
val startsWithOne = countingList match {
 case 1 :: someOtherElements => "This lists starts with one, the rest is $someOtherElements"
}
3. Compiler ishga aralashadi ! Matchda barcha possible caselar handle qilinmasa urishib beradi compiler sizni. Bu degani sizni safetyga majburlay oladi. Pattern matchinning man bilgan manashunaqa farqlari bor. Pattern matching ichida parametric polymorphism ishlaydi va bu imperativ controlflowga asossangan if else va switchlardan anchagina kuchli narsa. Turli tillarda pattern matching qo'shimcha imkoniyatlari mavjud masalan scaladagi quyidagicha narsalar boshqa pattern matching bor tillarda bo'lmasligi mumkin.

count match {
    case 1 => println("one, a lonely number")
    case x if x == 2 || x == 3 => println("two's company, three's a crowd")
    case x if x > 3 => println("4+, that's a party")
    case _ => println("i'm guessing your number is zero or less")
}
ADT alohida yozaman !

Bugun judayam tinch biz tomonlar mezza qilib dars qiladigan havo👍

photo content

https://x.com/deedydas/status/1846366712616403366?s=46 Qanaqadir social networkda shunaqa contentlarni ko’rib qo’rqib qolishadida kegin FP haqida ham miflar boshlanadi. Huddi maktabda arifmetika tugab Algebra darsi boshlanganda ko’pchilik potensial matematik o’quvchilarda ko’rsatkichlar tushib ketganiga o’xshataman shunaqa holatlarni.

Repost from JR TwitGram 🥂
Menimcha dasturlash haqiqiy “engineering” hisoblanishi uchun zo’r type system bo’lishi shart. Hozir ko’pchilik dasturlarda “tahminan ko’p holatlarda ishlasa kerak” degan darajaga olib chiqilsa bo’ldi. Buzilib qolsa osmon uzilib yerga tushmaydi ko’p holatlarda. Lekin bu haqiqiy engineering emas. Siz yashab turgan uyni ham shunday qursa nima deb o’ylaysiz? “Aka, yashab turavering. Hudo hohlasa yaxshi bo’ladi. Tahminan qo’ldan kelgacha qurdik. Lekin 100% garantiya bera olmaymiz.” desa? Shuning uchun ham bu narsalar haqiqiy engineeringa asoslanadi. Haqiqiy engineeringda qurilgan narsa ishlashiga isbot bor. Dasturlashda esa yo’q. Shuning uchun ham dasturlash hozircha haqiqiy engineering emas. Bu tarafga endi sekin sekin yuryapti. Automated reasoning, verification, prop testing degan narsalar bor. Ular yordamida yozilgan kodni ishlashiga qaysidir darajada “garantiya” bersa bo’ladi. Amazondagi men ishlayotgan jamoa ham Automated Reasoning bilan shug’ullanadi. Biz yozgan Cedar tili masalan shu tushunchalardan foydalanib yozilgan. Yani uni ishlashiga matematik isbotlar mavjud. AI rivojlangan sari ham bu narsalarning muhimligi oshib boradi. AI yozgan kodlarni isbotlash uchun. Type System ham qaysidir manoda shu isbotlarning bir qismi. Compiler kodingiz ishlashiga type systemdan foydalanib garantiya bera oladi.

Haqiqiy top kitob aynan distrubuted systems mavzusida. Bundan kegin Alex xu biratni o'qimay qo'yasizlar. https://www.distributed-systems.net/index.php/books/ds4/

Type levelda yozolmadim xozircha 😢 Ammo lean4 da ham o'xshadi addition ))
Type levelda yozolmadim xozircha 😢 Ammo lean4 da ham o'xshadi addition ))

Kafka schema registryga ADT qo’shilsa mezza bo’larkan. Qachondir sinayman albatta

Type level sila 😎 Bugun ulgurmadimda ohirigacha qilishga 😢
Type level sila 😎 Bugun ulgurmadimda ohirigacha qilishga 😢

Alexander Chichigin javob bergan. Man uchun uning javobi yetadi chunki bu kishi bu mavzularda ancha katta bilim tajribaga ega va community hurmatiga sazovor insonlardan. https://www.quora.com/When-should-one-opt-to-use-AGDA-rather-than-Haskell

Haskelldan yaxshi tillar faqat Lean4 yoki Agda bo'lishi mumkin ! Qolganlari aniq ustun bo'lolmaydi. Manashuni ohiriga yetkazib olsam kegin haskelldan yaxshiroq tillarda yozib ko'raman 🤓

Mezzami ? Church numeralsni yozib ko'rdim 😎 Addition va type familyda Kei yordam berdi(Rahmat !) https://en.wikipedia.org/wi
Mezzami ? Church numeralsni yozib ko'rdim 😎 Addition va type familyda Kei yordam berdi(Rahmat !) https://en.wikipedia.org/wiki/Church_encoding#Church_numerals

Juda qiziq conversations topdim stackoverflowda: Savol manosi va context: Monadlar qoidalari bo'yicha hammasini tadbiq qilish kerakmi ? Bu haskellda monadning 3 qoidasi haqida gapirilgan: Javobda esa monadlar qonunlariga bo’ysunishni ta’minlash engineer qo’lida. Qonunlar buzulganida esa sizni aniq biror yoqimsiz holatlar kutyabti )) Manashu narsa tufayli manga FP yoqadi. Qonunlarga amal qilish hayotingizni osonlashtiradi. https://stackoverflow.com/questions/37124471/are-monad-laws-enforced-in-haskell

Har kuni kechga yengilgina biror meva yoki snekni ovolib mana bunaqa narsalar o'qish kerakda. Haskell weekly juda zo'r joy 😎 Sizlarni platformda shunday narsalar bormi ? Bo'lsa share qilinglar PS: Nodejs yoki JS related bunaqa narsalarni bazilarini topgan edim ammo qiziq bo'lmagan. https://haskellweekly.news/newsletter.html

Shu bola starga to’ysin ! Bosvorilar )) https://github.com/ismoilovdevml/devops-journey

Topdim! Nima ish qilasiz ? Deb so’rashsa manashuni share qilaman.