Write an F# function interleave l1 l2 (defined below with examples) that interle
ID: 3882363 • Letter: W
Question
Write an F# function interleave l1 l2 (defined below with examples) that interleaves two lists of arbitrary size:
> interleave [1..3] [4..6];;
val it : int list = [1; 4; 2; 5; 3; 6]
> interleave [1..10] [3..5];;
val it : int list = [1; 3; 2; 4; 3; 5; 4; 5; 6; 7; 8; 9; 10]
> interleave [3..5] [1..10];;
val it : int list = [3; 1; 4; 2; 5; 3; 4; 5; 6; 7; 8; 9; 10]
> interleave ["cat"; "dog"; "elephant"; "lion"] ["tiger"; "rat"];;
val it : string list = ["cat"; "tiger"; "dog"; "rat"; "elephant"; "lion"]
Explanation / Answer
let rec interleave = function | (xs, []) -> [] | ([], ys) -> [] | (x::xs, y::ys)-> x::y::interleave( xs, ys)
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.