Skip to content

Instantly share code, notes, and snippets.

@naoto-ogawa
naoto-ogawa / hylomorphism.hs
Created February 29, 2020 04:55
hylomorphism.hs
{-# LANGUAGE GADTs, TypeFamilies, DeriveFunctor, LambdaCase #-}
module Hylo
where
import Data.Functor.Foldable
import Data.List
data TreeF a r = Leaf | Node a r r deriving (Functor, Show)
@naoto-ogawa
naoto-ogawa / generated_cloudformation.yaml
Created October 26, 2019 05:01
A generated cloudformation file
Resources:
MyVPCAFB07A31:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsHostnames: true
EnableDnsSupport: true
InstanceTenancy: default
Tags:
- Key: Name
@naoto-ogawa
naoto-ogawa / sample_cdk.txt
Created October 26, 2019 04:24
A CDK project structure
C:\Users\User\aws\cdk01>tree .
C:\USERS\USER\AWS\CDK01
├─bin
├─cdk.out
│ ├─asset.1ebc9d3ac2033816c4abb63e4afd69d350b4aba8704cc9236b82ea520b74f4b0
│ ├─asset.a5671030823ed06a8f9dae8c58ed287890a1f8f142c62aaba9808e007d84abd8
│ └─asset.a65ac4beaa2b5a7b20eebf3b7c5c1c886b71428afa377e02dab0d10ab3be57e7
├─lib
├─my-front-end
├─my-queue-consumer
@naoto-ogawa
naoto-ogawa / SuffixArray.hs
Created August 4, 2019 08:20
Suffix Arary (inefficient)
import Data.List
suffixArray :: [Char] -> [Int]
suffixArray xs = sortBy (\x y -> compare (drop x xs) (drop y xs) ) [0..(length xs - 1)]
{-
> suffixArray "abracadabra"
[10,7,0,3,5,8,1,4,6,9,2]
> suffixArray "banana"
[5,3,1,0,4,2]
@naoto-ogawa
naoto-ogawa / io-stream sample 3.hs
Created May 4, 2019 04:56
io-stream sample 3 (copy)
module SampleStream where
import Prelude as P hiding(lines)
import qualified Data.ByteString.UTF8 as BU
import System.IO.Streams
import System.IO.Streams.Debug
copy :: IO ()
copy = withFileAsOutput "./test/data/Types.hs.out1" (\os -> do
{-# LANGUAGE LambdaCase #-}
module SampleStream where
import Control.Monad.IO.Class (liftIO)
import System.IO.Streams as S
main :: IO ()
main = do
i <- S.fromList [1,2,3,9,4] >>= \i' ->
@naoto-ogawa
naoto-ogawa / io-stream sample.hs
Last active May 3, 2019 04:27
is-stream sample
{-# LANGUAGE OverloadedStrings #-}
module SampleStream (main) where
import Data.Foldable (forM_)
import qualified Data.Text as T
import qualified Data.Text.IO as T
import System.IO (IOMode (..), withFile)
import System.IO.Streams as S
{-# LANGUAGE TypeOperators, DataKinds, OverloadedLabels, FlexibleContexts, GADTs #-}
import Data.Extensible
--
-- standard
--
data A = AX | AY deriving (Show, Eq)
data B = BY | BZ deriving (Show, Eq)
@naoto-ogawa
naoto-ogawa / extensible_sample.hs
Last active February 17, 2019 06:32
extensible_sample.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
import Control.Monad.Reader
import Control.Monad.Reader.Class
import Data.Extensible
import Data.Extensible.Effect
@naoto-ogawa
naoto-ogawa / JOOX_wrap_sample.java
Last active June 14, 2021 03:12
JOOX wrap sample
package com.example.xml;
import org.joox.Match;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;