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 |