小编Wol*_*lff的帖子

Haskell - 如果将函数作为参数,高阶函数的输入是什么样的?

我正在使用Haskell,并尝试实现更高阶的函数,但我无法理解和测试函数,因为我不确定输入是什么样的.

由于函数本身是分级赋值的一部分,我不能请求有关编写/实现函数本身的帮助,因此我更改了函数名称和自定义类型名称,因此我可以使用该函数作为示例如果要将它们输入控制台,输入参数将如下所示.

search :: ([(Int,Int)] -> [[(Int,Int)]]) -> ([(Int,Int)] -> Bool) -> [[(Int,Int)]] -> Maybe [(Int,Int)]
search function1 function2 listOfIntegerPairs
Run Code Online (Sandbox Code Playgroud)

function1将整数对列表作为输入,并输出包含整数对的列表列表.

function2获取整数对列表并输出一个布尔值.

我不确定如何将这个高阶函数的参数输入控制台.

即它是这样的,我们包括函数和它的参数作为参数?

search (function1([(0,0),(0,1)])) (function2([(0,0),(0,1)])) [(0,0),(0,1)]
Run Code Online (Sandbox Code Playgroud)

这个表单会产生错误,但是我无法弄清楚输入参数会是什么样子,并且无法找到说明它的任何文章/教程.因此,我无法测试函数,直到我找出输入函数参数看起来像类型的东西.

谁能给我一些指导?我甚至可能要问什么?

haskell higher-order-functions

2
推荐指数
1
解决办法
594
查看次数

R:如何停止在绘图图表上将百分比四舍五入到小数点后 0 位?

我正在尝试向我闪亮的仪表板添加一个绘图。y 轴变量是一个比例,我想将其格式化为百分比。我发现我可以使用布局的 yaxis 设置中的刻度格式功能来完成此操作。然而,由于我的图表中的百分比都很低,我注意到了一些怪癖。

首先,当您将鼠标悬停在数据点上时,y 轴和实际值都会四舍五入到小数点后 0 位。例如,0.0287 和 0.275 都显示为 0.3,尽管它们在图表上的实际位置略有不同,反映了真实的基础价值。

其次,当 y 轴范围如此小并且默认四舍五入到小数点后 0 位时,它在多个刻度处显示相同的值,并且刻度间隔也不直观。

我在下面提供了示例代码,改编自plotly 网站上的示例。(我只是将值更改为较小的值)。

您可以看到它生成的图表给出了刻度线,显示 2%、3%、3%、4%、4%、5%、5%、5%、6%。第一个问题是它具有误导性,其次你可以看到那里有 3x 5%,但只有其他的 2x,所以看起来它甚至没有做出像 4.5%、5%、5.5% 等这样的合理差距,但是而是基于数据值的一些不直观的东西。

library(plotly)

fig <- plot_ly(
  type = "scatter",
  x = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), 
  y = c(0.0185, 0.0382, 0.0561, 0.0463, 0.0596, 0.048, 0.0287, 0.0275, 0.0243, 0.0429, 0.0450, 0.0391), 
  mode = "markers+lines") 
fig <- fig %>%
  layout(
    yaxis = list(
      tickformat = "%"
    ))

fig
Run Code Online (Sandbox Code Playgroud)

总之:

我如何...

  1. 指定如何四舍五入百分比? …

r rounding-error rounding plotly yaxis

2
推荐指数
1
解决办法
4230
查看次数

C初学者 - Hello World程序在命令提示符下没有在Windows上执行任何操作

我即将开始学习C(我需要在C中编程,稍后将其转换为MIPS).

我在Windows 8上,并下载MinGW并将路径变量设置为其目录,以便gcc或g ++命令在命令提示符下工作.

我将以下Hello World示例复制到.c文本文件中.

#include<stdio.h>

int main(void)
{ // This is a comment
  printf("Hello world!\n");
  return 0;
} 
Run Code Online (Sandbox Code Playgroud)

但是,虽然我在文件的正确目录中,但在输入"gcc helloWorld.c"的命令提示符下,它会暂停几秒钟,然后不会执行任何操作.它只是表示程序已经完成,并允许我输入其他内容.

这可能是一个简单的错误 - 我真的不明白我在做什么.但任何人都可以帮助我吗?

c gcc mingw command-prompt

1
推荐指数
1
解决办法
9436
查看次数

C:为printf中的float输出指定可变数量的小数点?

我只是想要处理C.我正在尝试打印一个浮点数,我知道我可以做如下...

printf("Rate: %f.\n",rate);
Run Code Online (Sandbox Code Playgroud)

但我想只打印一个特定数量的小数点,由变量"decimalPoints"指定.decimalPoints值是通过读取字符串并使用sscanf将其转换为float来确定的.因此,它不限于特定值,因此%.2f将不起作用.但是说decimalPoints的值是2,有没有办法去做呢?

即具有以下格式的东西?

int decimalPoints = 2;
printf("Rate: %{decimalPoints}f.\n",rate);
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
410
查看次数