我已经开始学习 Haskell 并且我已经读到 Haskell 中的每个函数都只接受一个参数,我无法理解 Haskell 引擎盖下发生的魔法使之成为可能,我想知道它是否有效。
>:t (+)
(+) :: Num a => a -> a -> a
Run Code Online (Sandbox Code Playgroud)
上面的签名意味着(+)函数接受一个Num然后返回另一个接受一个Num并返回一个的函数Num
示例 1相对简单,但我开始想知道当函数稍微复杂一些时会发生什么。
为了这个例子,我编写了一个zipWith函数并以两种方式执行它,一次传递一个参数,一次传递所有参数。
zipwithCustom f (x:xs) (y:ys) = f x y : zipwithCustom f xs ys
zipwithCustom _ _ _ = []
zipWithAdd = zipwithCustom (+)
zipWithAddTo123 = zipWithAdd [1,2,3]
test1 = zipWithAddTo123 [1,1,1]
test2 = zipwithCustom (+) [1,2,3] [1,1,1]
>test1
[2,3,4]
>test2
[2,3,4]
Run Code Online (Sandbox Code Playgroud)
我有一个包含多个 tsconfig 文件的项目,因为我正在使用 Angular 构建电子应用程序,并且我希望电子代码有不同的配置,而角度代码有不同的配置。
\n Foobar //angular app root folder\n\xe2\x94\x9c\xe2\x94\x80\xc2\xa0app //electron app root folder\n\xe2\x94\x82\xc2\xa0\xc2\xa0\xe2\x94\x9c\xe2\x94\x80\xc2\xa0**/*.ts //multiple folders with .ts files\n\xe2\x94\x82\xc2\xa0\xc2\xa0\xe2\x94\x9c\xe2\x94\x80\xc2\xa0test\n\xe2\x94\x82\xc2\xa0\xc2\xa0\xe2\x94\x82\xc2\xa0\xc2\xa0\xe2\x94\x94\xe2\x94\x80\xc2\xa0test.ts\n\xe2\x94\x82\xc2\xa0\xc2\xa0\xe2\x94\x94\xe2\x94\x80\xc2\xa0tsconfig.json\n\xe2\x94\x9c\xe2\x94\x80\xc2\xa0src //angular code\n\xe2\x94\x9c\xe2\x94\x80\xc2\xa0node_modules\n\xe2\x94\x9c\xe2\x94\x80\xc2\xa0package.json\n\xe2\x94\x9c\xe2\x94\x80\xc2\xa0tsconfig.app.json\n\xe2\x94\x9c\xe2\x94\x80\xc2\xa0tsconfig.json\n\xe2\x94\x94\xe2\x94\x80\xc2\xa0tsconfig.spec.json\nRun Code Online (Sandbox Code Playgroud)\n\xc2\xa9 由项目树生成器生成
\nAngular代码正在使用jasmine,但我想用它jest来测试electron代码。由于某种原因,我看不到jest内部的类型Foobar/app/test/test.ts,因为它们以某种方式被jasmine.
例如:
expect(foobar1).toMatchObject(foobar2); //Property \'toMatchObject\' does not exist on type \'FunctionMatchers<any>\'\n//but I can see Jasmine types and methods\nRun Code Online (Sandbox Code Playgroud)\n但是当我改变时Foobar/app/tsconfig.json
:
{\n "compilerOptions": {\n "target": "es2018", \n "module": "commonjs", \n "lib": ["es2018"], …Run Code Online (Sandbox Code Playgroud) Angular 客户端- httpClient 发送请求
const map: Map<string, string> = new Map<string, string>();
map.set('foo', 'bar');
this.http.post(address, map, httpOptions).subscribe(
next => console.log('next: ' + next),
error => console.log('error: ' + error),
() => console.log('complete')
);
Run Code Online (Sandbox Code Playgroud)
Springboot 服务器-控制器接收请求
@RequestMapping(value = "/foobar", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public void fooBar(@RequestBody Map<String, String> foo){
System.out.println(foo.entrySet()); //<-- always empty
}
Run Code Online (Sandbox Code Playgroud) 我使用以下命令在 github 页面上部署了一个测试项目:
ng build --prod --base-href https://<profile_name>.github.io/<repo_name>/
ngh --dir=dist/scrabble
Run Code Online (Sandbox Code Playgroud)
除了图像外,一切正常(在本地主机上,每个图像都在加载)。
"outputPath": "dist/scrabble/",
Run Code Online (Sandbox Code Playgroud)
angular.json 中的资产:
"assets": [
"src/favicon.ico",
"src/assets"
],
Run Code Online (Sandbox Code Playgroud)
带有图像的资产文件夹位于 <project_folder>/src/assets
在本地主机上完美运行但在 github 页面上无法加载的图像标签示例:
<img src="../../../assets/scaledlogo.png" routerLink="/menu" />
Run Code Online (Sandbox Code Playgroud) 我使用 node.js 得到的 HTML 与我在浏览器中看到的 HTML 有很大不同(使用 google chrome 检查功能)。我认为发生这种情况是因为在使用浏览器时我必须等待某些元素加载,但在创建请求时我不会等待它们。我如何请求完全加载的 HTML?是否可以不假装成真正的用户(傀儡师)?
例如,我尝试从此链接https://clips.twitch.tv/IronicPoishedTermite4Head获取视频元素 ,但视频元素根本不存在于我获取的 HTML 中。
const fetch = require("node-fetch");
const jsdom = require("jsdom");
(async () => {
let htmlDoc = await fetch("https://clips.twitch.tv/IronicPoisedTermite4Head")
.then((res) => res.text())
.then((body) => body); //body is totally different than HTML in the browser
try {
const document = new jsdom.JSDOM().window.document;
console.log(htmlDoc);
console.log(document.getElementsByTagName('video')[0]);
} catch (e) {
console.log(e);
}
})();
Run Code Online (Sandbox Code Playgroud) 我正在尝试将列表聚合到字典中。第一列可以被视为 id,第二列可以被视为一些随机元素。我希望分配给同一 id 的所有元素都分组在该 id 下的列表中。Id=None,空列表需要过滤掉,并且不允许有重复的元素。
可能看到输入和输出会更有表现力
这是输入:
[
[1, 1],
[2, 1],
[2, 2],
[2, 3],
[2, 3],
[2, 4],
[],
[None, 5]
]
Run Code Online (Sandbox Code Playgroud)
这是预期的输出:
{
1: [1],
2: [1, 2, 3, 4]
}
Run Code Online (Sandbox Code Playgroud)
我陷入了这种功能性和命令性的混合:
filtered_groups = list(filter(lambda group: len(group) == 2 and group[0] is not None, groups))
grouper = {}
for group in filtered_groups:
id = group[0]
element = group[1]
grouper_entry = grouper.get(id)
if not grouper_entry:
grouper_entry = grouper[id] = []
if element not in grouper_entry: …Run Code Online (Sandbox Code Playgroud) angular ×3
dictionary ×2
arguments ×1
browser ×1
controller ×1
deployment ×1
electron ×1
function ×1
github ×1
github-pages ×1
grouping ×1
haskell ×1
html ×1
image ×1
java ×1
javascript ×1
list ×1
node.js ×1
performance ×1
python ×1
spring ×1
tsconfig ×1
types ×1
typescript ×1
web-scraping ×1