«haskell» etiketlenmiş sorular

Haskell, güçlü statik yazma, tembel değerlendirme, kapsamlı paralellik ve eşzamanlılık desteği ve benzersiz soyutlama özelliklerine sahip işlevsel bir programlama dilidir.

2
Haskell'de Varoluşçu Tiplere İlişkin Açıklama
Haskell'deki Varoluşçu türleri anlamaya çalışıyorum ve bir PDF ile karşılaştım http://www.ii.uni.wroc.pl/~dabi/courses/ZPF15/rlasocha/prezentacja.pdf Lütfen şimdiye kadar sahip olduğum aşağıdaki anlayışlarımı düzeltin. Varoluşçu Türler içerdikleri türle ilgilenmiyor gibi gözükmektedir, ancak bunlarla eşleşen desen, Typeable veya Data kullanana kadar ne tür olduğunu bilmediğimiz bir tür olduğunu söylüyor. Türleri Gizlemek istediğimizde kullanırız (örn: Heterojen Listeler …

1
Sayısal Kısıtlamalarla Ord türevi (forall a. Ord a => Ord (fa))
Nicel kısıtlamalar ile Eq (A f)iyi para cezası alabilir miyim? Ancak, Ord (A f) 'yi türetmeye çalıştığımda başarısız olur. Kısıtlama sınıfının bir üst sınıfı olduğunda nicelenmiş kısıtlamaları nasıl kullanacağımı anlamıyorum. Ord (A f)Üst sınıf olan diğer sınıfları nasıl türetebilirim ? > newtype A f = A (f Int) > deriving …

1
Haskell'in braket işlevi neden yürütülebilir dosyalarda çalışıyor ancak testlerde temizlenemiyor?
Ben Haskell'ın çok garip bir davranış görüyorum bracketişlevi farklı davranıyor olmasına bağlı olduğu stack runveya stack testkullanılır. Docker kapsayıcılarını oluşturmak ve temizlemek için iki iç içe parantez kullanılan aşağıdaki kodu göz önünde bulundurun: module Main where import Control.Concurrent import Control.Exception import System.Process main :: IO () main = do bracket …

1
Bir deseni yüklem işlevi olarak kullanmanın uygun bir yolu var mı?
Son zamanlarda, bir yüklem işlevini başka bir işleve geçirmem gereken durumlarda çalışıyorum ve sık sık aradığım mantık aslında "bu değer bu modelle eşleşiyor mu?" Desen eşleştirme, bildirimlerde, dobloklarda ve liste kavrayışlarında tercih edilir gibi görünür , ancak bir a -> Boolşekilde bir desende geçmenin çok kullanışlı olacağı bir yüklem alan …
10 haskell 

1
Tamamen bağımlı bir birleştirme oluşturma
Birleştirme hakkında güzel bir gerçek gerçeği, denklemde herhangi bir iki değişken biliyorsanız: a ++ b = c Sonra üçüncüyü biliyorum. Bu fikri kendi aklımda yakalamak istiyorum, böylece işlevsel bir bağımlılık kullanıyorum. {-# Language DataKinds, GADTs, FlexibleContexts, FlexibleInstances, FunctionalDependencies, KindSignatures, PolyKinds, TypeOperators, UndecidableInstances #-} import Data.Kind (Type) class Concatable (m :: …

4
Haskell'deki saf fonksiyonları ve yan etkileri anlama - putStrLn
Son zamanlarda Haskell öğrenmeye başladım çünkü fonksiyonel programlama hakkındaki bilgilerimi genişletmek istedim ve bunu şimdiye kadar gerçekten sevdiğimi söylemeliyim. Şu anda kullandığım kaynak Çoğul Görüş'teki 'Haskell Fundamentals Bölüm 1' dersidir. Ne yazık ki aşağıdaki kod hakkında öğretim elemanının belirli bir alıntı anlamakta biraz zorluk var ve çocuklar konuya biraz ışık …
10 haskell 

1
Bir listenin son fakat ikinci öğesini bulurken neden `` son '' bunlar arasında en hızlı olanı kullanıyorsunuz?
Bir listede son fakat ikinci elemanı bulan 3 fonksiyon bulunmaktadır. Kullanan last . initdiğerlerinden çok daha hızlı görünüyor. Nedenini anlayamıyorum. Test için, [1..100000000](100 milyon) giriş listesi kullandım . Sonuncusu neredeyse anında çalışır, diğerleri ise birkaç saniye sürer. -- slow myButLast :: [a] -> a myButLast [x, y] = x myButLast …
10 haskell 



1
"Kısıtlama numarası" neden bu manuel olarak tanımlanmış HasField örneğinde çalışmıyor?
Ben kullandığı bu (muhakkak garip) koduna sahip lens ve GHC.Records : {-# LANGUAGE DataKinds, PolyKinds, FlexibleInstances, UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module Main where import Control.Lens import GHC.Records data Glass r = Glass -- just a dumb …


3
Tüm sabit boyutlu kaplar güçlü monoidal functorlar mı ve / veya tersi mi?
ApplicativeTypeclass temsil gevşek monoidal fanktorlar o yazdığınız fonksiyonları kategorisine kartezyen monoidal yapısını korumak. Başka bir deyişle, (,)monoidal bir yapı oluşturan tanık kanonik izomorfizmlere bakıldığında : -- Implementations left to the motivated reader assoc_fwd :: ((a, b), c) -> (a, (b, c)) assoc_bwd :: (a, (b, c)) -> ((a, b), c) …

1
Haskell'de paralel "herhangi bir" veya "tümü"
Şimdi birkaç kez karşılaştığım bir desen, üzerinde bir test eşleştirerek ve öğelerin herhangi birinin veya tamamının geçip geçmediğini görerek bir değer listesinin kontrol edilmesi gereken modeldir. Tipik çözüm sadece kullanışlı dahili ins kullanmaktır allve any. Sorun, bunların seri olarak değerlendirilmesi. Birçok durumda, herhangi bir iş parçacığı için bir "Yanlış" veya …

1
Haskells Zayıf Kafa Normal Form
Bazı rahatsız edici şeyler üzerinde tökezledim. Haskell'in zayıf kafa normal formu (WHNF) ile çalıştığını biliyorum ve bunun ne olduğunu biliyorum. Aşağıdaki kodu ghci'ye yazarak (şu komutu kullanıyorum: ifadeyi WHNF'ye bilgime indirgeyen sprint): let intlist = [[1,2],[2,3]] :sprint intlist veren intlist = _bu markaları tamamen bana seziyorum. let stringlist = ["hi","there"] …


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.