mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-27 05:34:40 +03:00
22 lines
408 B
Idris
22 lines
408 B
Idris
|
infixr 5 ::
|
||
|
|
||
|
namespace List
|
||
|
public export
|
||
|
data List a = Nil | (::) a (List a)
|
||
|
|
||
|
namespace Stream
|
||
|
public export
|
||
|
data Stream a = (::) a (Inf (Stream a))
|
||
|
|
||
|
ones : Stream Integer
|
||
|
ones = num :: ones
|
||
|
where
|
||
|
num : Integer -- gratuitous where for a regression test!
|
||
|
num = 1
|
||
|
|
||
|
data Nat = Z | S Nat
|
||
|
|
||
|
take : Nat -> Stream a -> List a
|
||
|
take Z xs = Nil
|
||
|
take (S k) (x :: xs) = List.(::) x (take k xs)
|