Doubly-linked list/Traversal: Difference between revisions

Added solution for F# using std lib LinkedList
m (→‎{{header|PL/I}}: Fixed typo (teh → the))
(Added solution for F# using std lib LinkedList)
Line 599:
=={{header|Fortran}}==
see [[Doubly-linked list/Definition#Fortran]]
 
=={{header|F#}}==
<lang fsharp>
open System.Collections.Generic
 
let first (l: LinkedList<char>) = l.First
let last (l: LinkedList<char>) = l.Last
 
let next (l: LinkedListNode<char>) = l.Next
let prev (l: LinkedListNode<char>) = l.Previous
 
let traverse g f (ls: LinkedList<char>) =
let rec traverse (l: LinkedListNode<char>) =
match l with
| null -> ()
| _ ->
printf "%A" l.Value
traverse (f l)
traverse (g ls)
 
let traverseForward = traverse first next
let traverseBackward = traverse last prev
 
let cs = LinkedList(['a'..'z'])
 
traverseForward cs
printfn ""
traverseBackward cs
</lang>
{{out}}
<pre>
'a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y''z'
'z''y''x''w''v''u''t''s''r''q''p''o''n''m''l''k''j''i''h''g''f''e''d''c''b''a'
</pre>
 
=={{header|Go}}==
Anonymous user