ChatGPT小工具(用Chat GPT 编程?)
最近写了2个Chat GPT的小玩具,有网页版,也有浏览器插件,源码和效果在首页有链接,总体来说开发这种小工具还是很简单的,官方提供了api使用文档,只需要copy过来做一个简单的用户界面即可,现在网上有很多套壳版,最开始使用体验还不错,不过现在大多数情况下都在用自己开发的浏览器插件 在浏览器任意位置 ctrl+shirt+x就可以欢迎对话。
用Chat GPT 编程*
对了,现在写代码开始让Chat GPT 给输出一个基本的大纲,然后在进行修改和调整,lisp4js这个项目的parse模块就用到了GPT编写代码大纲,然后手动编写了对字符串类型和symbol类型的支持,这大大提高了编码效率;evaluate模块最开始是用Chat GPT生成的,但对于自定义函数的支持并不友好,及没有作用域,于是全部删除开始手动编码和调试,然后今天完成了初版,以前是面向谷歌编程以后要学习面向Chat GPT编程了及学习更多的prompt,编码的入门门槛也在此降低了许多,用人类语言告诉Chat GPT 然后他告诉你对应的代码,然后再做微调即可,我们需要做的就是学会和其更高效的对话。
这是一个示例
user:
用js写一个lisp的parser
ChatGPT:
由于LISP的语法比较复杂,写一个完整的解析器需要大量的代码量,因此这里只提供一个简单的LISP格式解析器的实现示例,仅用于学习和参考。
以下是一个简单的LISP解析器的实现,它包括了LISP的元素类型、符号表达式、数字表达式、列表表达式等:
function parseLisp(input) {
input = input.trim();
if (input[0] === "(") {
let list = [];
input = input.substring(1, input.length - 1).trim();
while (input.length > 0) {
let elem = parseLisp(input);
list.push(elem.expr);
input = elem.rest.trim();
}
return {"expr":list, "rest":""};
} else if (input[0] === "\"") {
let end = input.indexOf("\"", 1);
let str = input.substring(1, end);
return {"expr":str, "rest":input.substring(end + 1)};
} else {
let end = input.search(/\s/);
if (end === -1) {
end = input.length;
}
let sym = input.substring(0, end);
if (isNumber(sym)) {
return {"expr":Number(sym), "rest":input.substring(end)};
} else {
return {"expr":sym, "rest":input.substring(end)};
}
}
}
function isNumber(str) {
return /^\d+$/.test(str);
}
这个解析器基本上是一个递归的函数,它把输入的LISP表达式逐渐转换成对应的JavaScript对象。该函数接受一个字符串作为输入,然后根据字符串的首字符来确定该字符串表示的是哪种类型的LISP表达式。如果LISP表达式是一个符号,该函数将其解析为一个字符串;如果是一个数字,该函数将其解析为一个数字;如果是一个列表,该函数将其转换成一个JavaScript数组,并递归处理列表中的每一个元素。