我得到了这个答案/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)不评估它的情况下查看它的扩展版本?(用于调试更复杂的)
我正在七周的七种语言中工作,但有一些我对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) 有人知道如何使用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插件?(我猜这只会捆绑我使用的模块)
这个页面展示了 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)
我是 VSCode 和 Github 的新手,并且使用 Windows 10。我有 2 个 Github 帐户,一个“私人”帐户和一个“工作”帐户。我一开始使用“私人”,但我不再使用它了。我将 VSCode 帐户链接到“Work”并验证它已正确完成此操作。
现在,当我将文件从本地推送到远程时,它会继续使用“私人”推送它。所以我检查了如何解决这个问题并改变了两件事:
git config --global user.name和git config user.name,发现两者都显示为“私有”。所以我输入:git config --global user.name "Work"and git config user.name "Work",将两者更改为“工作”我希望这两个行动能够解决问题,但不幸的是它没有。还有其他地方我应该改变什么吗?
长话短说
我正在尝试将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) babeljs ×1
base64 ×1
data-uri ×1
git ×1
github ×1
html ×1
image ×1
javascript ×1
lisp-macros ×1
prolog ×1
prolog-dif ×1
racket ×1
webpack ×1
windows ×1
workbox ×1