Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

IN HASKELL This is my question: Define a function shuffle :: Int -> [a] -> [a] that takes a natural number n and an even-lengthed

IN HASKELL

This is my question: Define a function shuffle :: Int -> [a] -> [a] that takes a natural number n and an even-lengthed list, and splits and then riffles the list n times. For example, shuffle 2 [1,2,3,4,5,6] = [1,5,4,3,2,6].

Here is my riffle function:

riffle :: [a] -> [a] -> [a]

riffle [] ys = ys

riffle xs [] = xs

riffle (x:xs)(y:ys) = x : y : riffle xs ys

Here is my shuffle function that I am confused on:

shuffle :: Int -> [a] -> [a]

shuffle [] = []

let shuffle 0 x = x

shuffle n x = shuffle (n-1) $ uncurry riffle $ splitAt (length x `div` 2) x

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Case Studies In Business Data Bases

Authors: James Bradley

1st Edition

0030141346, 978-0030141348

More Books

Students also viewed these Databases questions

Question

Write an explanation of the Diagram in two lines

Answered: 1 week ago

Question

Compare the different types of employee separation actions.

Answered: 1 week ago

Question

Assess alternative dispute resolution methods.

Answered: 1 week ago

Question

Distinguish between intrinsic and extrinsic rewards.

Answered: 1 week ago