zipper

    17

    3答えて

    {-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveTraversable #-} import Control.Comonad import Data.Functor.Reverse import Data.List (unfoldr) 最初にいくつかの文脈(ハッハッハ)

    4

    2答えて

    ハスケル(そして他の関数型言語のジッパーパターン)について、データ構造を横断して変更する方法について少しお読みになりました。これは良いことだと思いました クラスは、横断されたデータ構造とは無関係に、コードを記述するための共通のトラバーサルインタフェースを提示することができるので、私はHaskellで型クラスを作成する技術を磨くことができます。 私はおそらく二つのクラス必要があるだろうと思った -

    9

    2答えて

    をナビゲートする方法、私はgo_up方法を理解することはできません:あなたはジッパーを理解すれば、他の種類の定義の let go_up (Loc(t,p)) = match p with Top -> failwith "up of top" | Node(left,up,right) -> Loc(Section((rev left) @ (t::right)),up);; 完全なソース

    0

    2答えて

    私はジッパーを使って石鹸データを解析するコードをいくつか持っています。私がそれをフォーマットすると、それは私のために期待どおりに動作します ​​ それは期待される結果をプリントアウトします。私はlet文にXMLの構文解析を移動すると、しかし、それは(私がトリプルチェックしました私のブラケットが一致)のコードは、XML-Z/XMLを置くように変更されました RuntimeException EOF

    8

    1答えて

    "モデル"(つまり、UMLなどのセマンティクスのあるボックスやラインのコレクション、ここではその詳細は関係ありません)のためのグラフィカルエディタを作成しています。 。だから私は、モデルを表すデータ構造と、ダイアグラムの編集がモデルの対応する変化を引き起こすダイアグラムを持っていたいと思います。たとえば、モデル要素に属性のテキストがあり、図のテキストを編集する場合は、モデル要素を更新する必要があり

    6

    1答えて

    私はlensとzippersと苦労しています。 Control.Monad.MonadPlus m => m (Zipper Top Int [Int] :>> A Int):私はのようなジッパーの種類を作成する方法、data A t = A tを持つghci > import Control.Lens > import Control.Zipper > > :t within (ix 1)

    6

    1答えて

    zippersとlensを使用して問題にぶつかりました。たとえば次のよう考えてみましょう:あなたが見ることができるように、私はTop :>> A :>> AとTop :>> A :>> BにTop :>> Aのいずれかから移動することができます {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeOperators #-} import Cont

    20

    2答えて

    ハスケルの2次元グリッドに関する最近の質問からインスピレーションを得て、2次元ジッパーを作成してリストのリスト内の位置を追跡することが可能かどうか疑問に思っています。リスト上の1次元ジッパーは、私たちが本当に効率的に大きなリストでローカルに移動できるようにします(一般的な例はテキストエディターです)。 grid = [[ 1, 2, 3, 4, 5] ,[ 6, 7, 8, 9

    8

    2答えて

    ネストされたマップで表現されたTRIEのClojureジッパーを、キーが文字であるように作成する方法を教えてください。 このような何か: {\b {\a {\n {\a {\n {\a {'$ '$}}}}}} \a {\n {\a {'$ '$}}}} は2つのワード 'バナナ' と 'ANA' とトライを表します。 (必要に応じて、地図上でここでいくつかの変更を加えることができます) 私は

    3

    2答えて

    repl> (-> root zip/down zip/right) [{:answer-keys [5 6], :id 3} {:l [{:id 2, :answer-keys []}], :pnodes [{:answer-keys [2 3 4], :id 1}], :ppath nil, :r ({:answer-keys [7], :id 4})}] replにジッパーをプリントア