gpt4 book ai didi

haskell - 如何在 Clojure 中进行列表理解?

转载 作者:行者123 更新时间:2023-12-04 13:09:23 24 4
gpt4 key购买 nike

我正在学习 Clojure,我在 Haskell 书中找到了解决直角三角形问题的方法,使用列表理解使问题得到了巧妙地解决:

寻找正确的三角形

  • 三边的长度都是整数。
  • 每条边的长度小于等于10。
  • 三角形的周长(边长之和)等于
    24.

  • 在 haskell :

    ghci> let rightTriangles' = [ (a,b,c) | c <- [1..10], a <- [1..c], b <- [1..a],
    a^2 + b^2 == c^2, a+b+c == 24]

    ghci> rightTriangles'
    [(6,8,10)]

    Clojure 中是否有如此优雅的列表理解解决方案?

    最佳答案

    Clojure 有 for句法:

    (for [ c (range 1 (inc 10))
    a (range 1 (inc c))
    b (range 1 (inc a))
    :when (== (+ (* a a) (* b b))
    (* c c))
    :when (== (+ a b c) 24) ]
    [a b c])

    关于haskell - 如何在 Clojure 中进行列表理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23796941/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com