connectPerim' Haskell Diagrams function



我在Haskell Diagrams中发现了connectPerim'函数的一些问题。该函数在周长的选定部分连接两个图形的周长(此时图形周长分为12部分,"/"前面的数字表示选择连接哪一部分)。connectPerim':: (Renderable (Path R2) b, IsName n1, IsName n2) => ArrowOpts -> n1 -> n2 -> Angle -> Angle -> Diagram b R2 -> Diagram b R2例如:

# connectPerim' singleHeadArrow "2" "1" (6/12 :: Turn) (0/12 :: Turn)

我想把两个角度参数((6/12::Turn)和(0/12::Turn))放入新的变量,但我只能把这些参数放入单独的变量。例如

arrowRight1 = (6/12 :: Turn)
arrowRight2 = (0/12 :: Turn)
# connectPerim' singleHeadArrow "2" "1" arrowRight1 arrowRight2

是否可以将这些角度参数组合为一个变量?如果是,你能举个例子吗?提前感谢!

你可以创建一个connectPerim'的替代版本,它接受两个角度作为一个元组:

connectPerim'' ao n1 n2 (a0,a1) = connectPerim' ao n1 n2 a0 a1

一个等价且更优雅的定义,使用uncurry:

connectPerim'' ao n1 n2 = uncurry $ connectPerim' ao n1 n2

用法:

let arrowRight = (6/12,0/12) :: (Turn, Turn)
in connectPerim'' singleHeadArrow "2" "1" arrowRight

最新更新