小编Ale*_*502的帖子

如何在球拍中查看扩展宏?

我得到了这个答案/sf/answers/4922329401/关于编写一个简单的宏来记录宏扩展时的时间,然后总是返回该时间。

#lang racket

(begin-for-syntax
  (define the-time (current-seconds)))

(define-syntax (macro-expansion-seconds stx)
  (datum->syntax stx the-time))

(macro-expansion-seconds)
(macro-expansion-seconds)
(macro-expansion-seconds)
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但现在有没有一种简单的方法可以在(macro-expansion-seconds)不评估它的情况下查看它的扩展版本?(用于调试更复杂的)

racket lisp-macros

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

当一个存在时,prolog不会给我一个解决方案

我正在七周的七种语言中工作,但有一些我对prolog不了解.我有以下程序(基于他们的华莱士和grommit程序):

/* teams.pl */

onTeam(a, aTeam).
onTeam(b, aTeam).
onTeam(b, superTeam).
onTeam(c, superTeam).

teamMate(X, Y) :- \+(X = Y), onTeam(X, Z), onTeam(Y, Z).
Run Code Online (Sandbox Code Playgroud)

并像这样加载它

?- ['teams.pl'].
true.
Run Code Online (Sandbox Code Playgroud)

但它没有给我任何解决方案

?- teamMate(a, X).
false.
Run Code Online (Sandbox Code Playgroud)

它可以解决更简单的东西(在书中显示):

?- onTeam(b, X).
X = aTeam ;
X = superTeam.
Run Code Online (Sandbox Code Playgroud)

有解决方案:

?- teamMate(a, b).
true ;
false.
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我尝试了gnu prolog和swipl.

......还有更多......

当你移动"不能成为你自己的队友"的限制然后结束:

/* teams.pl */

onTeam(a, aTeam).
onTeam(b, aTeam).
onTeam(b, superTeam).
onTeam(c, superTeam).

teamMate(X, Y) :- onTeam(X, Z), onTeam(Y, Z), \+(X = Y).
Run Code Online (Sandbox Code Playgroud)

它给了我期望的解决方案:

?- ['teams.pl'].
true. …
Run Code Online (Sandbox Code Playgroud)

prolog prolog-dif logical-purity

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

使用工作箱而不使用CDN

有人知道如何使用CDN而不使用工作箱吗?我试过了

添加workbox-cli到我的依赖项:

    "workbox-cli": "^3.6.3"
Run Code Online (Sandbox Code Playgroud)

这让我以下所有依赖项

$ ls node_modules | grep workbox
workbox-background-sync
workbox-broadcast-cache-update
workbox-build
workbox-cacheable-response
workbox-cache-expiration
workbox-cli
workbox-core
workbox-google-analytics
workbox-navigation-preload
workbox-precaching
workbox-range-requests
workbox-routing
workbox-strategies
workbox-streams
workbox-sw
Run Code Online (Sandbox Code Playgroud)

然后我在示例中替换了这一行

importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.6.1/workbox-sw.js');
Run Code Online (Sandbox Code Playgroud)

有了这个

importScripts('workbox-sw.js');
Run Code Online (Sandbox Code Playgroud)

复制node_modules/workbox-sw/build/workbox-sw.js到公用文件夹后

但是现在我通过查看“网络”选项卡意识到,该文件仍然从CDN中获取所有其他模块

网络标签

(我认为它将内部包含所有内容。)

有人可以告诉我某个地方是否已经装有npm软件包?还是应该从npm文件夹中复制所需的模块,然后以某种方式将它们自己捆绑在一起?还是我必须使用webpack插件?(我猜这只会捆绑我使用的模块)

progressive-web-apps workbox

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

webpack 在哪里缓存其重建工作?

这个页面展示了 webpack 的很多编译模式,其中一些重建速度比构建速度快。

在此输入图像描述

我正在尝试测量不同构建工具的速度,但我无法弄清楚我是在构建还是重建。我的意思是..我必须清除哪些文件才能确保正在重建?只是目标目录吗?或者某个地方还有另一个缓存?

例如,这里的第二次构建是第二次构建还是重建?

node_modules/.bin/webpack --output-path ~/target
rm -r target
node_modules/.bin/webpack --output-path ~/target
Run Code Online (Sandbox Code Playgroud)

如果重建,我必须清除什么才能使其再次重建

这里的第二个是建造还是重建

node_modules/.bin/webpack --output-path ~/target
node_modules/.bin/webpack --output-path ~/target
Run Code Online (Sandbox Code Playgroud)

如果这是另一个构建,我需要做什么来重建

(网络包4)

webpack babeljs

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

从 VSCode 推送到 Github 时出现错误的用户

我是 VSCode 和 Github 的新手,并且使用 Windows 10。我有 2 个 Github 帐户,一个“私人”帐户和一个“工作”帐户。我一开始使用“私人”,但我不再使用它了。我将 VSCode 帐户链接到“Work”并验证它已正确完成此操作。

现在,当我将文件从本地推送到远程时,它会继续使用“私人”推送它。所以我检查了如何解决这个问题并改变了两件事:

  1. 在 Git bash 中,我输入:git config --global user.namegit config user.name,发现两者都显示为“私有”。所以我输入:git config --global user.name "Work"and git config user.name "Work",将两者更改为“工作”
  2. 在我的笔记本电脑上,我转到“开始”->“控制面板”->“用户帐户”->“管理您的凭据”->“Windows 凭据”,并删除了“私人”凭据

我希望这两个行动能够解决问题,但不幸的是它没有。还有其他地方我应该改变什么吗?

windows git github visual-studio-code

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

从获取的图像创建数据 url

长话短说

我正在尝试将fetch图像转换为 base64,并将数据 urlimg放入的属性中src,但它不起作用:

async function ajax(id) {
  const tag = document.getElementById(id);
  const path = tag.getAttribute("data-src");
  const response = await fetch(path);
  const blob = await response.blob();
  const base64 = window.btoa(blob);
  const content = `data:image/jpeg;base64,${base64}`;
  tag.setAttribute("src", content);
}
Run Code Online (Sandbox Code Playgroud)

详细信息以及其他一些有效的方法如下


我一直在尝试不同的延迟加载方法:

$ mkdir lazy
$ cd lazy
$ wget https://upload.wikimedia.org/wikipedia/commons/7/7a/Lone_Ranger_and_Silver_1956.jpg # any other example image
Run Code Online (Sandbox Code Playgroud)

现在创建一个名为index.html以下内​​容的文件:

<script>
  // this works
  function setAttribute(id) {
    const tag = document.getElementById(id);
    const path = tag.getAttribute("data-src"); …
Run Code Online (Sandbox Code Playgroud)

html javascript base64 image data-uri

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