SORU
18 AĞUSTOS 2011, PERŞEMBE


Ne tarz uygulamalı pratik kullanır?

Scala bir programcı, şimdi Haskell öğreniyorum. Kolay OO kavramları, dekoratörler, strateji desen gibi pratik kullanım durumları ve gerçek hayattan örnekler bulmak için. Kitap ve formül tarafından başlatılan bunlarla dolu.

Bu şekilde işlevsel kavramlar için böyle olmadığını anlamasına geldi. Örnek:applicatives.

Applicatives için pratik kullanım örnekleri bulmak için mücadele ediyorum. Rastlamak dersler ve kitapların hemen hepsi şimdiye kadar [] Maybe örnekler verin. Applicatives, FP toplum içinde onların ilgisini görünce daha ilgili olmasını beklerdim.

Kavramsal olarak anladığımı sanıyorumapplicatives(belki de yanılıyorum) uzun aydınlanma anı bekledim. Ama olmuyor görünmüyor. Hiç programlama ederken, bir sevinçle haykırmak istiyorum bir an vardı, "Eureka! ben Uygulamalı burada kullanabilirim!" (dışında yine [] Maybe).

Birisi applicatives günlük bir programlama nasıl kullanılabileceğini bana rehberlik edebilir misiniz? Ne desen lekelenme başlar? Teşekkürler!

CEVAP
18 AĞUSTOS 2011, PERŞEMBE


Applicatives çok değişkenli düz eski bir işlevi var harika, ve argüman var ama içerik bir tür sarılmış durumdalar. Örneğin, düz eski Birleştir fonksiyonu ( ) ama uygulamak için 2 dizeleri idi yoluyla elde G/Ç Sonra aslında o IO uygulamalı functor gelen kurtarma:

Prelude Control.Applicative> (  ) <$> getLine <*> getLine
hi
there
"hithere"

Açıkça olmayanMaybe örnekler için sormuş olsam da, benim için çok faydalı bir durum gibi görünüyor, bir örnek vereyim. Çok değişkenli normal bir işlevi var, ama eğer ihtiyacınız olan tüm değerleri (bazıları, Nothing getirisi hesaplamak için başarısız olmuş olabilir) varsa bilmiyorum. "Eğer girdilerini tanımsız. tanımsız olan kısmi bir fonksiyonu, içine fonksiyonu açmak istiyorum" kısmi değerleri var, çünkü aslında o kadar Sonra

Prelude Control.Applicative> ( ) <$> Just 3 <*> Just 5
Just 8

ama

Prelude Control.Applicative> ( ) <$> Just 3 <*> Nothing
Nothing

istediğiniz tam da bu.

Temel fikir "" istediğiniz kadar bağımsız değişkenler için uygulanabilir bir bağlam içine normal bir işlev. kaldırma olduğunu. Sadece temel Functor Applicative ekstra güç fmap yalnızca tekli bir işlevi kaldırabilir oysa keyfi sunar fonksiyonları asansör, olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Distractify

    Distractify

    1 Aralık 2011
  • Huot Media

    Huot Media

    7 Mayıs 2010
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009