小编And*_*man的帖子

操作员可以返回功能吗?

我学习Haskell.

这不是运算符,因为运算符必须有两个参数:

(###) :: Int -> Int -> Int -> Int
(###) a b c = a + b + c
Run Code Online (Sandbox Code Playgroud)

但是这个案子呢:

(###) :: Int -> Int -> (Int -> Int)
(###) a b = \c -> a + b + c
Run Code Online (Sandbox Code Playgroud)

这个函数有两个参数,但是返回一个函数......它现在是一个运算符吗?我认为它不是运营商,因为第二个变量首先是部分应用.但我不确定我是对的.操作员可以返回功能吗?

haskell

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

在哪个头文件中声明了函数“ _tcscpy_s”?

Visual Studio2015。我正在阅读《通过C \ C ++的Windows》一书,并尝试使用其代码示例。作者写道,字符串的“安全”功能具有_s后缀,并在StrSafe.h标头中声明。此标头将是包含列表中的最后一个。在我的代码中,我包含了以下标头:

#include <iostream>
#include <exception>
#include <string>
#include <Windows.h>
#include <strsafe.h>
Run Code Online (Sandbox Code Playgroud)

但是我有一个问题:

// IDE doesn't see the _tcscpy_s function
errno_t result = _tcscpy_s(szBuffer, _countof(szBuffer), TEXT("0123456789"));
Run Code Online (Sandbox Code Playgroud)

看了有关的信息_tcscpy_s的功能,但我没有看到它的头文件(我希望它是信息strsafe.h)。

我该如何解决?

c++ string winapi visual-studio

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

为什么`foldr`,`foldr1`,`scanr`和`scanr1`函数在应用于大列表时没有_problem的生产力?

我读了" 为了好大学学习你的哈斯克尔"的古老俄语翻译!书.我看到目前的英文版(在线版)比较新,所以我也是时候看一下.

报价:

当您将两个列表放在一起时(即使您将单个列表附加到列表中,例如:)[1,2,3] ++ [4]),在内部,Haskell必须遍历左侧的整个列表++.在处理非列表时,这不是问题太大了.不过东西放在那五十万个条目长将会需要一段时间的列表的末尾,但是将东西在使用一个列表的开始:操作(也称为利弊运营商)是瞬间的.

我以为那Haskell有通过整个列表走以获取列表的最后一个项目foldr,foldr1,scanrscanr1功能.另外我假设 Haskell会为获取前一个元素做同样的事情(依此类推每个项目).

但是我觉得我弄错了:

UPD

我尝试这个代码,我看到两种情况的处理时间相似:

data' = [1 .. 10000000]
sum'r = foldr1 (\x acc -> x + acc ) data' 
sum'l = foldl1 (\acc x -> x + acc ) data'
Run Code Online (Sandbox Code Playgroud)

每个Haskell列表都是双向的吗?我假设首先获得列表的最后一项Haskell是迭代每个项目并记住必要的项目(例如最后一项)以获得(稍后)双向列表的前一项(用于延迟计算).我对吗?

haskell

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

为什么[if ...]条件在我的html中不起作用?

我在Google Chrome 70.0.3538.67Internet Explorer 11.55.17763.0中打开此html文件:

<!doctype html>
<html lang="ru">
<head>
    <meta charset="utf-8"/>
    <!-- saved from url=(0014)about:internet -->
    <title>Sandbox</title>
    <link href="index.css" rel="stylesheet"/>
    <script>
        console.log('Hello all!')
    </script>
    <!--[if gt IE 9]>
    <script>
        console.log('Hello from IE newer then 9!')
    </script>
    <![endif]-->
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我期待两种浏览器的输出:

大家好!
你好,IE更新,然后9!

但我只得到:

大家好!

为什么会这样?

html javascript html5

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

为什么C标准包含许多不安全的功能?

为什么C标准包含许多不安全的功能,例如,它们是无用的(在良好的程序中它们不使用)并且有害getchar?为什么C标准不包含它们的有用功能,例如getch,和getche?这只是众多例子中的一个......

UPD我很困惑:gets而不是getchar.

c c99 c89 c11

-8
推荐指数
1
解决办法
274
查看次数

标签 统计

haskell ×2

c ×1

c++ ×1

c11 ×1

c89 ×1

c99 ×1

html ×1

html5 ×1

javascript ×1

string ×1

visual-studio ×1

winapi ×1