Re: Haskell: переписать без явной рекурсии
От: Кодт Россия  
Дата: 06.04.12 10:04
Оценка: +1
Здравствуйте, Danila_a, Вы писали:

D_>Есть такая задачка: посчитать расстояние(просто модуль разности) между элементами списка.

D_>Т.е. для [1,5,10] получить [4,9,5].

Можно изящно (хотя и менее эффективно) сделать на нотации do или list comprehensions
diffs xs =
  do
    let ixs = zip [1..] xs
    i,x <- ixs
    j,y <- ixs
    when (i<j)
    return abs(x-y)

diffs xs = [ abs(x-y) | (i,x) <- ixs, (j,y) <- ixs, (i<j) ] where ixs = zip [1..] xs
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.