型に言及するには,制約が
Monoid しかないので,情報が足りないのではないでしょうか?Monoid しかないので,情報が足りないのではないでしょうか?fmap が多相関数なのでどちらかの則があれば自動的にもう一方を満たします(toList t = build (\ c n -> foldr c n t) を「並べる」ということだ言ってしまえばその通りかもしれませんが普通の直感とは多分違うような気が。newtype Square a = Square a
fold [] = mempty fold [m1] = m1 <> m1 fold [m1, m2] = m2 fold [m1, m2, m3] = m1 <> m3 <> m2 <> m3 fold [m1, m2, m3, m4] = mempty ...
elems [m1] = [m1,m1] elems [m1,m2] = [m2] ...
Foldable を見てるかはよく分かりませんが,現状のbase( https://hackage.haskell.org/package/base-4.10.0.0/docs/src/Data.Foldable.html#line-230 )では, toList = build (\ c n -> foldr c n t) がデフォルトになっています. build は https://hackage.haskell.org/package/base-4.10.0.0/docs/src/GHC.Base.html#line-871 ですね.リストを作るためのビルダーになっていて, foldr/build変換なども適用されるようになりますtoList [m1] = m1:m1:[] = [m1,m1] ですね。instance Foldable (Array i) の中のところでした。'toList = ' で検索したのが失敗だった orz。fold . fmap f = f . fold は f はモノイド準同型を前提してということですか。f がモノイド準同型であることが必要ですimport qualified Data.Text as TとするとT.Textと型にもTが付くんですか?T.Text にしたくない場合はこんな感じで定義されてることが多いですね!import Data.Text (Text) import qualified Data.Text as T
Data.Map を import する際にも良くみかけます:grinning:import するもの (関数や型など) を明示的に列挙できます。import Data.Text (Text)
Text 型のみを import します。その際、 qualified ... as 形式ではないため Text という表記で利用できます。import qualified Data.Text as T
Text モジュールで export されているもの全てが import されます。(`T.Text`, T.null, etc...)。こちらは qualified ... as 形式なので全て T. という修飾詞つきの表記で利用できます。( Prelude や他のモジュールで定義されている関数 (や型) の名前と被る場合に使います。)import を2つ書いた場合は Text 型は Text と T.Text の両方の形式で利用できるという理解が正しいです。T.Text って書くの面倒なので Text しか使わないという感じです。T.Text を import しないようにするためには hiding キーワードを使って明示的に import しないものを指定します。(`hiding` は暗黙的に Prelude から import されているものを隠したい場合によく利用します。 import Prelude hiding (div))import Data.Text (Text) import qualified Data.Text as T hiding (Text)
lts-9 系でも stack install ghc-mod でインストールできたような気がします。haskell-mode を使っておくのがいいんでしょうか。(というかそれ以外に選択肢がない?)ACME.PreCure.Textbook.KirakiraALaMode.Instances でインスタンスしか定義していない module を export して、env = fromPairs ["list" .=["AA","BB","CC"]]