我在Haskell Diagrams中发现了connectPerim'函数的一些问题。此功能连接周边选定部分中两个图形的周长(此时图形周长分为12个部分,“/”之前的数字表示选择连接哪个部分)。 connectPerim'::(可渲染(路径R2)b,IsName n1,IsName n2)=> ArrowOpts - > n1 - > n2 - >角度 - >角度 - >图b R2 - >图b R2 例如:
# connectPerim' singleHeadArrow "2" "1" (6/12 :: Turn) (0/12 :: Turn)
我想将两个Angle参数((6/12 :: Turn)和(0/12 :: Turn))放入新变量中,但我只能将这些参数放入单独的变量中。例如
arrowRight1 = (6/12 :: Turn)
arrowRight2 = (0/12 :: Turn)
# connectPerim' singleHeadArrow "2" "1" arrowRight1 arrowRight2
是否可以将这些角度参数组合成一个变量?如果它可以你举个例子吗?提前谢谢!
答案 0 :(得分:1)
您可以创建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