2016-01-14 1 views
0

Я хотел бы знать, как взять список кортежей в качестве параметра или, если есть более простое решение.Ввод списка кортежей в качестве параметров в Haskell

Я новичок в Haskell (только начался неделю назад), и я сделал эту функцию, чтобы проверить, действует ли кортеж как Pythagorean Triple.

pyTheorem (a,b,c) = a^2 + b^2 == c^2 

let x = pyTheorem (3,4,5) 

Так как я бы определить функцию, где она принимает список кортежей и возвращает кортежи, которые Пифагоровых трехместных? Кроме того, если есть лучший способ сделать это, пожалуйста, уточните.

Я искал некоторые подобные вопросы, но я не мог найти что-то похожее на этот пример.

Side Примечание: Я считаю, что некоторые из примеров в Лях я не могу использовать в онлайн терминале: https://ghc.io/

Так я использую http://www.tutorialspoint.com/compile_haskell_online.php вместо этого. Есть ли какие-то большие различия, о которых я должен знать?

Спасибо.

ответ

5

Я думаю, что это все, что вам нужен

filterPy : [(Int,Int,Int)] -> [(Int,Int,Int)] 
filterPy ls = filter pyTheorem ls 

Real также Любители творчества писать 'безточечное'

filterPy = filter pyTheorem 
+0

спасибо! Он работает, но как именно он фильтрует? Поскольку он возвращает тройки, я предполагаю, что фильтры основаны на pyTheorem, возвращающем true? – DxAlpha

+0

Взгляните на https://hackage.haskell.org/package/base-4.7.0.0/docs/Data-List.html#g:13 –

+0

Я вижу, что объяснение показывает: 'filter p xs = [x | x <- xs, p x] ', но как это переводится с вышеуказанного кода? – DxAlpha

 Смежные вопросы

  • Нет связанных вопросов^_^