Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Функциональные языки: общие вопросы > haskell


Автор: самаяЯ 23.7.2014, 20:12
стоит задача найти сколько цифр в числе.как это сделать на плюсах,джаве и т.п я понимаю,но с этим языком знакома пару дней и никак не переключиться.подскажите,буду благодарна
и еще вопрос: как в хаскеле вообще аналоги while делать?

Автор: beroal 24.7.2014, 18:55
Циклы делаются с помощью рекурсии.
Код

let
  rc s = ... rc s'
  in rc s0

s' — новое состояние, вычисленное из старого состояния s. s0 — начальное состояние цикла.

Автор: chubakur 25.9.2014, 21:58
Эта задача решается проще чем циклом, для этого надо всего-лишь посчитать логарифм по основанию 10 от числа, округлить и прибавить единицу. Для вычисления логарифма по заданному основанию в хаскеле есть функция logBase

Автор: Compositum 11.12.2014, 09:41
Цитата

стоит задача найти сколько цифр в числе.

Код

digitCount::String->Int
digitCount xs = length [x|x<-xs,x`elem`['0'..'9']]

Цитата

как в хаскеле вообще аналоги while делать

takeWhile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)