Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 仅当打印效果良好时,才使用2种布局 我很喜欢打印C++方法声明,如果参数行的话,我希望参数列表以紧凑的形式呈现: void method(MyLongClassName& instance, const MyClass& c);_Haskell_Pretty Print - Fatal编程技术网

Haskell 仅当打印效果良好时,才使用2种布局 我很喜欢打印C++方法声明,如果参数行的话,我希望参数列表以紧凑的形式呈现: void method(MyLongClassName& instance, const MyClass& c);

Haskell 仅当打印效果良好时,才使用2种布局 我很喜欢打印C++方法声明,如果参数行的话,我希望参数列表以紧凑的形式呈现: void method(MyLongClassName& instance, const MyClass& c);,haskell,pretty-print,Haskell,Pretty Print,如果不符合以下条件,则在列中进行格式化: void method( MyLongClassName& instance, const MyClass& c, int counter); 我想从考虑中排除所有其他布局。 这似乎是简单的,既没有也没有,如果不是黑客的来源 有什么想法吗?一个更普遍的问题的解决方案如何选择适合单行的布局,或者如果没有,使用替代品,可以在这里找

如果不符合以下条件,则在列中进行格式化:

void method(      MyLongClassName& instance,
            const MyClass&         c,
                  int              counter);
我想从考虑中排除所有其他布局。 这似乎是简单的,既没有也没有,如果不是黑客的来源


有什么想法吗?

一个更普遍的问题的解决方案如何选择适合单行的布局,或者如果没有,使用替代品,可以在这里找到:

您是如何做到的?您是否正在从文件中读取源代码并尝试以您的格式打印它?或者你只是想格式化硬编码的字符串?检查可能输出的长度,如果它适合行,打印它,否则,自己创建一块板(2d序列或其他),填充每个单元格(第0列可能是返回类型,第1列可能是名称+(,第2列<代码>常量,等等),找到每列的最大宽度,根据列的最大宽度在需要的地方打印空白,迭代每行。@JustinWood:对于任何正确的方法定义,它应该足够通用,所以没有困难-coding@gxtaillon:我很不愿意自己做这件事,因为这正是我们需要漂亮的打印库的原因。:)另一个缺点是,为了检查输出的长度,我需要呈现前面的方法声明,因此,基本上所有内容都渲染两次。@d8d0d65b3f7cf42:这就是我试图实现的全部想法:如果我更改了某些内容,将自动为我重新格式化代码:)对于表格修饰器,您可能需要查看Text.PrettyPrint.box()出于我的目的,它有一些缺点