Webブラウザのブックマークのデータ構造を作ってみましょう.ブックマークのツリーには以下のノードがあります.
- ブックマーク
- フォルダ
ノードはそれぞれ以下の要素を持ちます.
- name
| #import <UIKit/UIKit.h> | |
| @interface MyPickerView : UIView | |
| <UIPickerViewDataSource, UIPickerViewDelegate> | |
| { | |
| UIToolbar *toolbar; | |
| UIPickerView *picker; | |
| void (^completion)(NSString *selected); |
| - (void)sizeToFitWithAnchorPoint:(AnchorPoint)anchorPoint | |
| { | |
| CGRect srcFrame = self.frame; | |
| [self sizeToFit]; | |
| CGRect dstFrame = self.frame; | |
| CGPoint p = dstFrame.origin; | |
| switch (anchorPoint) { | |
| case AnchorPointRightTop: | |
| p = CGPointMake( | |
| CGRectGetMaxX(srcFrame) - dstFrame.size.width, |
| -- ex1 | |
| -- my null | |
| null' xs = xs == [] | |
| -- my sum | |
| sum' xs = if null' xs then 0 else head xs + sum' (tail xs) | |
| -- my product | |
| product' xs = if null' xs then 1 else head xs * product' (tail xs) |
| -- すごいHaskell読書会 in 大阪 #3 | |
| -- 練習問題 | |
| -- 問題1 | |
| -- 次のリスト内包を **map** と **filter** で書き直してみましょう | |
| -- [ x ^ 2 | x <- [1..5], odd x] | |
| q1 = map (^2) $ filter odd [1..5] | |
| -- 問題2 |
| module Parupunte | |
| ( (+) | |
| , (*) | |
| ) where | |
| import qualified Prelude as Pre | |
| (+) a b = b Pre.* a | |
| (*) a b = b Pre.+ a |
| data Bookmark = Bookmark { name :: String, url :: String } | | |
| Folder { name :: String, children :: [Bookmark] } deriving (Show, Eq) | |
| root = Folder "root" [(Bookmark "sample1" "http://example.com"), | |
| (Bookmark "sample2" "http://example.com"), | |
| (Bookmark "sample3" "http://example.com")] | |
| emptyChildren = Folder "root" [] | |
| recursibleFolder = Folder "root" [(Bookmark "sample1" "http://example.com"), | |
| root] |
| import Data.Char (toUpper, intToDigit) | |
| import Data.List (concat, words, tails, isPrefixOf) | |
| upperCase :: String -> String | |
| upperCase = map toUpper | |
| removeSpace :: String -> String | |
| removeSpace = concat . words | |
| cover :: Eq a => [a] -> [a] -> Bool |
| data Akari a = Waai a (Akari a) | Daisuki deriving (Show) | |
| data H oo gle = H oo oo oo oo oo gle deriving (Show) | |
| data Ha y oo = Ha y oo oo oo oo oo deriving (Show) | |
| data O b = OOOO|OOOOOO|O|OO deriving (Show) | |
| data Hom r a = Hom (r -> a) | |
| data State s a = State (s -> (a, s)) | |
| data Just a = Nothing | Maybe (Maybe a) | |
| instance Functor Akari where | |
| fmap _ Daisuki = Daisuki |