Разделить список на два равных списка в F #

Я новичок в F #, и мне нужна небольшая помощь с проблемой F #.

Мне нужно реализовать функцию вырезания, которая разделяет список пополам, чтобы результат был ...

cut [1; 2; 3; 4; 5; 6] ;;

val it: int list * int list = ([1; 2; 3], [4; 5; 6])

Я могу предположить, что длина списка четная.

Также ожидается, что я определю вспомогательную функцию gencut (n, xs), которая разрезает xs на две части, где n дает размер первая часть:

gencut (2, [1; 3; 4; 2; 7; 0; 9]) ;;

val it: int list * int list = ([1; 3], [4 ; 2; 7; 0; 9])

Обычно я бы здесь не попросил помощи с упражнениями, но я действительно не знаю, с чего начать. Любая помощь, даже если это просто толчок в правильном направлении, поможет.

Спасибо!

6
задан pad 16 September 2012 в 22:35
поделиться