Значи ли това, че трябва да променя връщащия низ или нещо подобно? Защото от извикването на JSON той получава акаунта verified204?
Отговори (2)
Ще се опитам да не раздавам твърде много, но ето няколко съвета:
- Имате нужда от два базови случая - един за
[]
, един за[x]
. - Вашият общ случай трябва да се справи само с два елемента, а не с четири (поставяне на един в първия списък и един във втория)
- В момента имате
split
, който връща списък, а не кортеж. Резултатът от първия ви основен случай трябва да бъде([],[])
. - В общия случай рекурсивното
split xs
ще върне кортеж(ys,zs)
. Трябва да извлечете тези стойности и да изградите получения кортеж по отношение наys
,zs
,x1
иx2
.
(Редактиране) Няколко точки за вашето преработено решение:
- Трябва да работите само с два елемента наведнъж - общият случай трябва да бъде
split x1::x2::xs
split [x,y]
се обработва от общия случай - няма нужда от друг основен случай.- Липсва ви рекурсивното повикване! Елементите завършват и в двата списъка, защото поставяте
xs
директно в двете половини на изхода си - първо трябва да го разделите. Започнете сlet (ys, zs) = split xs in ...
person
Nick Barnes
schedule
13.10.2012
Thx 100 пъти.. Това малко изяснява нещата. Отивам да спя в 4 сутринта, ще публикувам решението утре. Много полезно!
- person user1742595; 13.10.2012
fun split [] = ([], [])
| split [x] = ([x], [])
| split (x1::x2::xs) =
let
val (ys, zs) = split xs
in
((x1::ys), (x2::zs))
end;
val test1split = split [1, 1, 2, 3, 5, 6] = ([1, 2, 5], [1, 3, 6])
val test2split = split [8, 7, 6, 5, 4, 3] = ([8, 6, 4], [7, 5, 3])
val test3split = split [8, 7] = ([8], [7])
val test4split = split [8] = ([8], [])
Решено... Не съм напълно сигурен как, хаха, трябва много повече практика, за да го овладеете. Не можех да го направя без указателите... Благодаря много за помощта Ник Барнс.
person
user1742595
schedule
13.10.2012
Работя по проект, който включва главен swf, който се зарежда в дъщерни swf файлове според изискванията. Има ли начин да се заредят тези дъщерни swf файлове по такъв начин, че конструкторът в техния клас документи да може да бъде извикан с аргументи?
като пример:
Имам дъщерен клас, който се зарежда по време на изпълнение, на който може да бъде даден аргумент за подравняване в неговия конструктор.
Зареждам това по време на изпълнение като клас и го инстанцирам с аргументи в родителския, Master swf.
Очевидно бих могъл да създам вторичен „конструктор“ в детето, което изгражда това, което искам след инстанциране, просто бих искал да знам дали има начин да управлявам инстанцирането на заредени swf файлове и/или да ги заредя в класове, а не в показвани обекти .
- person CBusBus   schedule 13.10.2012