やりたいことや興味のあること、新規性のありそうなことをまとめておく。時期が来たら整理したり実行したり削除したりすればいいってワケ。
- 辞書のリンク構造の調査:単語の生成と定義文章をパターンから生成するのは異なる問題として捉えるべき?
- スクリプト->魔法陣生成器
| import Control.Applicative | |
| import Control.Monad.State | |
| import Text.ParserCombinators.Parsec hiding ((<|>), State) | |
| import qualified Data.Map as M | |
| data OpA = (:+:) | (:-:) | (:*:) | (:/:) deriving (Eq,Show) | |
| data OpB = And | Or deriving (Eq,Show) | |
| data OpR = (:>) | (:<) deriving (Eq,Show) | |
| newtype Var = Var String deriving (Eq,Ord,Show) | |
| data AExp = VarExp Var | Numeral Integer | ApplyA OpA AExp AExp | 
| {-# LANGUAGE FlexibleContexts, TypeOperators #-} | |
| import qualified Control.Monad.State.Strict as SS | |
| import qualified CState as CS | |
| import qualified Control.Eff.State.Strict as ES | |
| import Criterion.Main | |
| import Control.Monad | |
| import Control.Monad.State.Class | |
| import Data.Functor.Identity | |
| import Control.Eff | |
| import Data.Typeable | 
| {-# LANGUAGE GADTs, FlexibleContexts, TemplateHaskell #-} | |
| import Control.Comonad.Env | |
| import Control.Comonad | |
| import Control.Monad.Operational.Mini | |
| import qualified Data.IntMap as M | |
| data Field = Field String (M.IntMap Chara) deriving (Show) | |
| data Chara = Chara String deriving (Show) | |
| updateField f (Field s m) = Field (f s) m | |
| updateChara f (Chara s) = Chara (f s) | 
| {-# LANGUAGE DataKinds, TypeOperators, KindSignatures, TypeFamilies #-} | |
| {-# LANGUAGE UndecidableInstances, FlexibleInstances, FlexibleContexts #-} | |
| {-# LANGUAGE ScopedTypeVariables, GADTs, MultiParamTypeClasses, FunctionalDependencies #-} | |
| import GHC.TypeLits | |
| import Data.Type.Equality | |
| import Data.Proxy | |
| type family (a :: Nat) % (b :: Nat) :: Nat where | |
| a % b = Mod a b (CmpNat a b) | 
| 問題: https://paiza.jp/poh/kirishima | |
| 結果: http://paiza.jp/poh/kirishima/result/c7b9268a3c4b60e5c40aff903b3b9d96 | 
| import FreeGame | |
| import qualified Data.IntMap as IM | |
| import Control.Monad.State.Strict | |
| import Control.Arrow | |
| data Cells a = Cells (IM.IntMap a) (Int,Int) | |
| instance Functor Cells where | |
| fmap f (Cells m k) = Cells (fmap f m) k | |
| type Board = Cells Bool | 
| {-# LANGUAGE DeriveFunctor, FlexibleInstances, TemplateHaskell #-} | |
| import Data.IORef | |
| import TH | |
| import PList | |
| data Parent = Parent { _x :: Int, children :: [Address] } deriving Show | |
| data Child = Child { _y :: Int, parent :: Address } deriving Show | |
| makeManager [''Parent, ''Child] | 
-- Accessors
_Show :: (Read a, Show a) => Prism' String a
only :: Eq a => a -> Prism' a ()| {-# LANGUAGE GADTs, TemplateHaskell, FlexibleContexts #-} | |
| import Control.Lens | |
| import Control.Arrow | |
| import Data.Functor.Product | |
| import Control.Monad.State | |
| import Control.Monad.Operational.Mini | |
| import Control.Comonad.Store | |
| data Pattern p q x where | |
| Hook :: Either (p -> p) (q -> q) -> Pattern p q () |