- . - + , , Tuple, :
let tupleList = ("a", ("b", ("c", [])))
"" "head". O (1), fst:
> fst tupleList
, :
let tupleList2 = ("x",snd tupleList)
O (1). ? . - : tupleList tupleList2. tupleList2, . , , - .
3- :
> snd . snd $ fst tupleList
O (3), , .. O (n).
O (1)? , . O (1) , , .
(ASIDE: , Linked List Array, , Big-O , get, , , , ..).
, , . concat tupleList ("e", ("f", [])). , :
tupleList3 = (fst tupleList, (snd $ fst tupleList, (snd . snd $ fst tupleList, ("e", ("f", [])))
, O (n), . : , .
, , , ? , O (1). , . ?
, :
data Queue a = Queue { last :: Queue a, head :: a, next :: Queue a} | Empty
appendEnd :: a -> Queue a -> Queue a
appendEnd a2 (Queue l, h, n) = ????
"", , . . , , .
, , , . O (n).
, :
List a []
, . . .
List a (List a [])
, . . . , . . , O (1).
Haskell Doubly Linked Lists. "" (, , FIFO) . Haskell .
, , , Purely Funtional Data Structures.
EDIT: - : http://visualgo.net/list.html, , " " O ( 1). , . , . , .