12.07.2015 Views

Выпуск 14

Выпуск 14

Выпуск 14

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

СЕМИНАР42сентябрь 2011 / ИНФОРМАТИКАматематической задачи. Условие задачи ставитсятак: необходимо найти все такие прямо угольныетреугольники со стороной не больше 10 и периметром,равным 24. В императивных языках эта задачаимеет не самое тривиальное и не самое очевидноерешение, связанное с неоднократным применениемциклов. В Haskell же все ясно: необходимоиспользовать списочное выражение. Представимтреугольник в виде кортежа из значений длин сторон— (a, b, c). Перечислим все прямоугольныетреугольники со сторонами не больше 10:Hugs> [(a, b, c) | c Intlength' [] = 0length' (_:xs) = 1 + length' xsСпециальная точка в области определенияфункции длины — пустой список — выделена вособый случай, длина такого списка равна нулю.Длина же любого непустого списка равна единице,плюс длина его хвоста. Голова в данном случаенам не нужна, поэтому обозначена подчеркиванием.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!