F#实现的单链表(函数式的思想)

// 在 http://fsharp.net 上了解有关 F# 的更多信息

// 请参阅“F# 教程”项目以获取更多帮助。



type list = 

    | Nil 

    | Cons of int * list



let x = Cons(1, Cons(2, Cons(3, Cons(4, Nil))))



//let rec printlist l= 

//    match l with

//    | Nil -> ()

//    | Cons(a, l') -> printfn "%d" a; printlist l'



//打印程序,可通过提供不同的函数f,实现不同的打印方式

let rec printlist l f=

    match l with

    | Nil -> ()

    | Cons(a, l') ->

    ((if f a then printfn "%d" a else ()); printlist l' f)



[<EntryPoint>]

let main argv = 

    printlist x (fun x-> true)

    printlist x (fun x -> x>2)

    System.Console.ReadLine()

    0 // 返回整数退出代码

  

你可能感兴趣的:(单链表)