我想让这个 prolog 文件成为独立的 EXE 文件

2024-01-01

我是 prolog 新手,我已经编写了这段代码,但我想让这个 prolog 文件成为一个独立的 EXE 文件,但我不知道如何去做。我正在使用 swi-prolog 来查阅该文件。我需要使用 swi-prolog 使该程序可执行的分步教程。我将其保存为“computer.pl”,下面是代码。

main :- identify.

identify :-
  write('Welcome to Micro-Computer troubleshooting'),
  nl,
  write('Please do not forget to type all your answers with a period(.) in the end'),
  nl,
  retractall(known(_,_,_)),            % clear stored information
  diagnosis(X),
  nl,
  write('The problem is:  '),
  nl,
  writeListByLine(X).
identify :-
  nl,
  write('I can not identify the problem').

writeListByLine([]).
writeListByLine([H|T]) :-                 % write answers in newline
  write(H),
  nl,
  writeListByLine(T).

%%%%%%%%%%%%%%%%%%%%%%%% Audio Sound Card not detected %%%%%%%%%%%%%%%%%%

diagnosis(['damaged sound card']) :-
  problem('Audio Sound Card not detected'),
  nl,
  write('>> remove damaged sound card and replace with a new sound card <<'),
  nl,
  question_1('is the sound card working?').

diagnosis(['sound card not installed']) :-
 problem('Audio Sound Card not detected'),
 nl,
 write('>> install new sound card <<'),
 nl,
 question_2('can your computer detect the new sound card?').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Audio Driver Warning %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

diagnosis(['driver conflict']) :-
  problem('Audio Driver Warning'),
  nl,
  write('>> uninstall previous audio drivers <<'),
  nl,
  question_1('is the audio driver working now?').

diagnosis(['incompatable audio driver']) :-
 problem('Audio Driver Warning'),
 nl,
 write('>> install the appropriate audio driver for your computer <<'),
 nl,
 question_2('is your computer still showing driver Warning?').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Scratchy Sound %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

diagnosis(['signal interference']) :-
  problem('Scratchy Sound'),
  nl,
  write('>> stay away from radio frequency sources <<'),
  nl,
  question_1('is the sound working fine now?').

diagnosis(['bad speaker']) :-
  problem('Scratchy Sound'),
  nl,
  write(' >> connect a ear phone to the computer <<'),
  nl,
  question_2('is the ear phone giving scratchy sound also?').

diagnosis(['bad speaker']) :-
  problem('Scratchy Sound'),
  nl,
  write('>> replace speaker <<'),
  nl,
  question_3('it should be working fine now ?').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Num lock stays off at startup %%%%%%%%%%%%%%%%%%%%%%%%%

diagnosis(['num lock shut off in BIOS']) :-
  problem('Num lock stays off at startup'),
  nl,
  write('>> turn on num lock in BIOS <<'),
  nl,
  question_1('does num lock on at startup?').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Invalid Drive Specification Error %%%%%%%%%%%%%%%%%%%%%%%%%

diagnosis(['drive not yet formatted']) :-
  problem('Invalid Drive Specification Error'),
  nl,
  write('>> format your drive <<'),
  nl,
  question_1('does your drive shows the drive letter?').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Mouse Pointer Jerks Onscreen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

diagnosis(['mouse ball or rollers are dirty']) :-
  problem('Mouse Pointer Jerks Onscreen'),
  nl,
  write('>> clean mouse mechanism <<'),
  nl,
  question_1('does the mouse still jerks on onscreen?').

diagnosis(['damaged mouse']) :-
 problem('Mouse Pointer Jerks Onscreen'),
 nl,
 write('>> connect the mouse to another computer <<'),
 nl,
 write('>> replace mouse <<'),
 nl,
 question_2('does the mouse still jerks on onscreen?').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%% System Cant find my Hard Drive %%%%%%%%%%%%%%%%%%%%%%%

diagnosis(['boot priority error']) :-
 problem('System Cant find my Hard Drive'),
 nl,
 write('>> set hard drive as the first booting device <<'),
 nl,
 question_1('does your hard drive now load at startup?').

diagnosis(['crashed hard drive']) :-
 problem('System Cant find my Hard drive'),
 nl,
 write('>> insert another hard drive to your computer,if the hard drive load at startup then previous hard drive has crashed <<'),
 nl,
 question_2('does your system recognize the hard drive?').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%% Random shutdown when working on computer %%%%%%%%%%%%%%%

diagnosis(['over heating']) :-
 problem('Random shutdown when working on computer'),
 question_1('does your computer get very hot when working?').

diagnosis(['dusty vent']) :-
 problem('Random shutdown when working on computer'),
 question_2('is their blockage or dust in the system vent?').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%% computer freezes randomly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

diagnosis(['hard drive is full']) :-
 problem('computer freezes randomly'),
 question_1('is your hard drive full').

diagnosis(['system RAM is faulty']) :-
 problem('computer freezes randomly'),
 question_2('does your system shows blue-screen errors at startup?').

diagnosis(['bad hard drive']) :-
 problem('computer freezes randomly'),
 question_3('does your hard drive make loud noise?').

diagnosis(['bad hard drive']) :-
 problem('computer freezes randomly'),
 question_4('does your computer boot slowly?').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%% Blue-screens %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

diagnosis(['Bad memory modules']) :-
 problem('Blue-screens'),
 nl,
 write('>> check memory with memtester and see if you get errors <<'),
 nl,
 write('>> if you do get errors and have more than one slots occupied <<'),
 nl,
 write('>> then test one by one and see if it works <<'),
 nl,
 question_1('did the test work?').

diagnosis(['corrupt drivers installed']) :-
 problem('Blue-screens'),
 nl,
 write('>> perform system restore to uninstall the corrupted drivers <<').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%% Monitor is blank %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

diagnosis(['no power to monitor']) :-
 problem('Monitor is blank'),
 question_1('check if the monitor connected to power source?').

diagnosis(['monitor not connected to computer']) :-
 problem('Monitor is blank'),
 question_2('is the monitor connected to the CPU?').

diagnosis(['screen-saver enabled']) :-
 problem('Monitor is blank'),
 question_3('check if screen-saver is enabled').

diagnosis(['display card not connected']) :-
 problem('Monitor is blank'),
 question_4('is display card connected?').








%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%% This is where the asking starts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
problem(X):- menuask(problem,X,['Audio Sound Card not detected',
                'Audio Driver Warning', 'Scratchy Sound',
                'Num lock stays off at startup','Invalid Drive Specification Error',
              'Mouse Pointer Jerks Onscreen', 'System Cant find my Hard Drive', 'Random shutdown when working on computer',
               'computer freezes randomly', 'Blue-screens', 'Monitor is blank']).           % shows menu
question_1(X):- ask(question_1,X).
question_2(X):- ask(question_2,X).
question_3(X):- ask(question_3,X).
question_4(X):- ask(question_4,X).
question_5(X):- ask(question_5,X).
question_6(X):- ask(question_6,X).
question_7(X):- ask(question_7,X).
question_8(X):- ask(question_8,X).
question_9(X):- ask(question_9,X).
question_10(X):- ask(question_10,X).
question_11(X):- ask(question_11,X).
question_12(X):- ask(question_12,X).

% "ask" only deals with simple yes or no answers. a "yes" is the only
% yes value. any other response is considered a "no".

ask(Attribute,Value):-
  known(yes,Attribute,Value),       % succeed if we know its true
  !.                                % and dont look any further
ask(Attribute,Value):-
  known(_,Attribute,Value),         % fail if we know its false
  !, fail.

ask(Attribute,_):-
  (known(yes,Attribute,_)),           % fail if we know its some other value.
  !, fail.                          % the cut in clause #1 ensures that if
                                    % we get here the value is wrong.
ask(A,V):-
  write(A:V),                       % if we get here, we need to ask.
  write('? (yes or no): '),
  read(Y),                          % get the answer
  asserta(known(Y,A,V)),            % remember it so we dont ask again.
  Y = yes.                          % succeed or fail based on answer.

% "menuask" is like ask, only it gives the user a menu to to choose
% from rather than a yes on no answer.

menuask(Attribute,Value,_) :-
  known(yes,Attribute,Value),       % succeed if we know
  !.
menuask(Attribute,_,_) :-
  known(yes,Attribute,_),           % fail if its some other value
  !, fail.

menuask(Attribute,AskValue,Menu):-
  nl,write('What is the '),write(Attribute),write('?'),nl,
  display_menu(Menu),
  write('Enter the number of choice> '),
  read(Num),nl,
  pick_menu(Num,AnswerValue,Menu),
  asserta(known(yes,Attribute,AnswerValue)),
  AskValue = AnswerValue.           % succeed or fail based on answer

display_menu(Menu) :-
  disp_menu(1,Menu), !.             % make sure we fail on backtracking

disp_menu(_,[]).
disp_menu(N,[Item | Rest]) :-        % recursively write the head of
  write(N),write(' : '),write(Item),nl, % the list and disp_menu the tail
  NN is N + 1,
  disp_menu(NN,Rest).

pick_menu(N,Val,Menu) :-
  integer(N),                       % make sure they gave a number
  pic_menu(1,N,Val,Menu), !.        % start at one
  pick_menu(Val,Val,_).             % if they didn't enter a number, use
                                    % what they entered as the value

pic_menu(_,_,none_of_the_above,[]). % if we've exhausted the list
pic_menu(N,N, Item, [Item|_]).      % the counter matches the number
pic_menu(Ctr,N, Val, [_|Rest]) :-
  NextCtr is Ctr + 1,               % try the next one
  pic_menu(NextCtr, N, Val, Rest).

由于您的代码在快速阅读时看起来很容易移植,因此您可以使用 GNU Prolog 生成一个.exe从中获取文件。假设代码保存在名为foo.pl,你可以使用GNU Prologgplc用于生成可执行文件的命令行实用程序:

$ gplc --no-top-level -o foo.exe foo.pl

但首先您需要将以下指令添加到文件顶部的代码中:

:- initialization(main).
:- dynamic(known/3).

The gplc如果没有,实用程序将报告错误dynamic/1指示。跑步foo.exe将打印:

$ ./foo.exe
Welcome to Micro-Computer troubleshooting
Please do not forget to type all your answers with a period(.) in the end

What is the problem?
1 : Audio Sound Card not detected
2 : Audio Driver Warning
3 : Scratchy Sound
4 : Num lock stays off at startup
5 : Invalid Drive Specification Error
6 : Mouse Pointer Jerks Onscreen
7 : System Cant find my Hard Drive
8 : Random shutdown when working on computer
9 : computer freezes randomly
10 : Blue-screens
11 : Monitor is blank
Enter the number of choice> 

附: GNU Prolog 是少数几个可以生成真正的 Prolog 编译器之一.exe您可以将该文件分发给其他人,而无需他们也安装 GNU Prolog。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我想让这个 prolog 文件成为独立的 EXE 文件 的相关文章

  • 适合从记录中提取 OneToMany 关系的约束编程

    也许有人可以帮助我解决 Prolog 或任何约束编程语言的问题 想象一个项目表 学生与母亲一起做某事的学校项目 每个项目都有一名或多名儿童参与 对于每个孩子 我们存储其姓名及其母亲的姓名 但对于每个项目 只有一个包含所有母亲的单元和一个包含
  • 将 Typescript 项目打包为可执行文件

    如何将 Typescript 项目打包成可执行文件 由于我找了一段时间没有找到 所以我使用了 now 节点来实现上述目的 我正在发布我所做的事情 希望有人会觉得它有用 将Typescript项目编译成node 根据this https me
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • 斜线(/)在序言中做什么?

    我有这个代码 set value X Value X T X Value T set value X Value Y V T Y V NewT X Y set value X Value T NewT set value X Value X
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • 我应该在 Prolog 和一般情况下避免尾递归吗?

    我正在阅读 立即学习 Prolog 在线书籍 以获取乐趣 我正在尝试编写一个谓词 该谓词遍历列表的每个成员并向其添加一个 使用累加器 我已经在没有尾递归的情况下轻松完成了 addone addone X Xs Y Ys Y is X 1 a
  • Prolog 展平列表

    flatten A B R islist A gt flatten A R1 R R1 write A append A R1 R flatten B R1 flatten X X islist 这是我写的代码 但我有奇怪的问题 I get
  • Same_length/2 更好的纯版本

    鉴于频繁的纯定义same length 2 as same length same length As Bs same length As Bs same length L L loops 是否有一个纯粹的定义不会在这种情况下循环 类似于纯
  • 谓词对于列表中的所有元素都必须为 true

    我有一组事实 likes john mary likes mary robert likes robert kate likes alan george likes alan mary likes george mary likes har
  • SWI-Prolog 中的跨模块“接口”调用

    这可能是 SWI Prolog 模块系统特有的 假设我们有三个 Prolog 模块 在 SWI Prolog 模块系统中 robin 在文件中robin pl arthur 在文件中arthur pl helper 在文件中helper p
  • Prolog 中的隔离列表

    我很难理解如何让我的代码显示由偶数和奇数组成的隔离列表 我什至不确定我的理解缺乏什么 显然我对这门语言很陌生 必须在学校使用它 我的命令式和功能性思维不会让我知道这到底是怎么回事 哈哈 现在 不 我不是要求你做我的作业 我只是请你帮我看看我
  • Prolog - 如何从输入文件的给定列表中创建变量列表?

    我有一个输入谓词将文件作为列表读取 输入 文件名 列表 该列表的格式将是 9 字面意思就是下划线字符 在这里 不是一个通配符 问题是我如何编写谓词 pred List List2 然后转换所有 进入变量但保留9还在同一个位置吗 所以如果我输
  • 一次性删除不正确的后续解决方案

    我有一个谓词 它找到正确的解决方案 但随后又找到不正确的解决方案 data D data threshold nonredundantbumps D 5 Bs write D 3 6 7 8 2 4 5 6 9 4 7 3 D 3 6 7
  • Prolog中计算数字是否为素数

    我正在尝试计算输入是否是素数 但出了问题 这是我的代码 primeNumber X prime prime A 1 prime prime A B R is A mod B R 1 R A prime prime X B B lt A Ne
  • Prolog DCG:找到最后一个元素

    我正在尝试更好地理解 DCG 的用途 为了做到这一点 我尝试将 LearnPrologNow 书中的一些练习转换为 DCG 表示法 然而 我却失败得很惨 我试图编写一个程序 仅命名列表中的最后一个元素 就这样 我只是想不出正确的 DCG 语
  • 变量的多个值介于 0 和数字序言之间

    所以我一直在尝试自学序言 我认为我进展顺利 然而 我有点坚持我正在尝试的这一种方法 toN N A A 等于 0 到 N 1 之间的整数值 按升序生成 所以 toN 5 A 将是 A 0 A 1 A 2 A 3 A 4 我对序言还很陌生 所
  • 这个版本的trace有什么问题?

    我有这个跟踪元解释器 它是为 swi prolog 编写的 trace Goal trace Goal 0 trace true Depth true trace fail Depth fail trace A gt B Depth A g
  • 在 C# 中创建可移植(非安装)Windows 应用程序

    我有一个 net 3 5 应用程序 我想让它变得可移植 它很简单并且运行完美 我已将 EXE DLL 发送给一些朋友 当在同一文件夹中运行带有 DLL 和 ICO 我在其中使用过 的 exe 时 它 按预期工作 我想要的很简单 创建一个单独
  • Prolog真的基于封闭世界假设吗?

    在下面封闭世界假设 https en wikipedia org wiki Closed world assumption 目前未知的事实是错误的 Prolog 的语义通常被认为遵循封闭世界假设 例如 here https cstheory
  • prolog跟踪如何使用

    跟踪prolog程序时如何进行第二步 例如 我想跟踪以下简单程序 length1 0 length1 X Xs N length1 Xs N1 N is N1 1 我跟踪程序 trace length 1 2 3 N Call 7 leng

随机推荐

  • WebDeploy API (IIS 7) - “公共 API”:资源?

    有人知道 WebDeploy API 的任何资源吗 有人用过吗 我尝试在官方论坛上询问 并浏览了该网站 该网站说有 公共 API 但没有链接 文章 资源 博客文章或示例 http forums iis net t 1180561 aspx
  • 单击事件不适用于动态添加的 Li->span->id

    单击事件不适用于动态添加的 Li gt span gt id case 101 strLink li a span Form 101 span a li sidebar nav append strLink break sidebar na
  • 如何将文件夹标记为包?

    我曾经认为文件夹需要有扩展名 以便 Finder 将它们识别为包 该扩展将在所属应用程序的 Info plist 中声明 显然还有另一种更优雅的方式 但我不知道它是如何完成的 例如 iPhoto 图库被 Finder 视为一个包 但它没有扩
  • 为什么更喜欢属性而不是公共变量? [复制]

    这个问题在这里已经有答案了 其他能够对 setter 中的值进行健全性检查是否有更根本的原因来选择属性而不是公共变量 我们以前有过这个主题 但现在找不到任何内容 简而言之 您的需求可能会发生变化 如果现在没有健全性检查 将来可能需要进行健全
  • byte[] 数组的长度

    String str 123456789 byte bytes str getBytes 我想进行以下循环 for int j 0 j lt bytes length j b bytes j b将存储数组的每个字节 但我似乎无法正确获取数组
  • GCE 上没有名为“google.cloud._helpers”的模块

    我在导入时遇到错误google cloud bigquery在普通教育考试上 它不会发生在非 GCE 的环境中 我执行了更新pip 你知道为什么吗 user1 sv1 python Python 3 6 0 Continuum Analyt
  • 如何获取 Ruby on Rails 生成的表单元素 id 以供 JavaScript 中参考?

    当使用form for助手和一个text field调用时 Ruby on Rails 会生成一个唯一的 id
  • eslint 解析错误:意外的标记 =

    为什么 eslint 会抛出这个错误 Javascript 在 React Native 中运行没有问题 该代码取自react navigation 示例 https reactnavigation org docs intro https
  • Qt foreach 中的第二项是否只计算一次?

    如果我有这个代码 foreach QListWidgetItem ii selectedItems urls push back ii gt data Qt ToolTip toString Would selectedItems 只被调用
  • Javascript“eval”是同步还是异步?

    考虑以下代码 eval a 5 b 10 eval a b 如果这里第一个 eval 运行很长时间 我的下一个 eval 是否会返回一个错误 指出 a 和 b 未定义 因为 a 和 b 值在第一个 eval 结束时初始化 eval方法是同步
  • 将 ShowCaseView 与 ActionBarCompat / ActionBarSherlock Android 结合使用

    我在用ShowcaseView图书馆来自here https github com Espiandev ShowcaseView在我的安卓应用程序中 我想用ShowcaseView with Actionbar Compat 但我不知道如何
  • 检索 JSON 对象时出现空指针异常

    我是 JSON 新手 我在用http pnrapi appspot com http pnrapi appspot com 使用 JSON 获取特定列车的状态 但是 在尝试解析接收到的对象时 我总是遇到空指针异常 请帮忙 这是我的代码 pu
  • 下载 Sun java 文档/镜像网站

    我们公司和 Sun 的 javadocs 之间的网络似乎已关闭 我在哪里可以获得给定包的 javadoc 副本 以便我可以保留自己的存储以处理将来的网络中断 有 Sun javadoc 的镜像吗 对于每个主要版本都有一个大型文档包 例如这里
  • 使用 Python 通过代理以编程方式发出 HTTP 请求

    如何使用 Python 通过代理发出 HTTP 请求 我需要对以下代码做什么 urllib urlopen http www google com The urlopen功能支持代理 尝试这样的事情 urllib urlopen your
  • OpenXML 在 Word 文档中查找变量并替换它们

    我需要在文档中搜索 中包含的字符串 因此 如果应用程序在文档中找到该变量 它将用 DateTime Today ToShortDateString 替换该变量 例如 string filename C Temp appNum Receipt
  • 从单个对话框片段获取日期和时间选择器值并将其设置在 EditText 中

    我正在开发一个用户可以设置日期和时间的应用程序 我想在单个对话框片段中设置日期和时间并将其设置为编辑文本 是否可以在 1 个对话框片段中使用日期和时间选择器 如果是的话 你会怎么做 目前我正在从对话框片段中获取时间 然后将其设置为EditT
  • 如何通过 GitHub API 获取 Git 标签中的所有提交

    我必须获取在 Git 存储库上创建新标签时所包含的所有新提交 这需要通过 GitHub API 来完成 例如 Git UI 显示 Tagging Tag1 并且有一个与其关联的 sha 假设 sha 是 SHA1 现在我如何通过 GitHu
  • 无法导入 Tornado 子模块

    首次尝试安装 Tornado 在 EC2 Linux 实例上 我做到了 pip install tornado 然后尝试运行 hello world 示例 http www tornadoweb org en stable hello wo
  • 如何在 Outlook VBA 中保存所选项目

    我想在 Outlook 中保存所选项目 使用下面的代码 我可以保存该项目 但它仅保存第一个项目 而不保存所选项目 我需要更改什么才能保存所选项目 Dim oOlApp As Object objNmSpc As Object ofldr A
  • 我想让这个 prolog 文件成为独立的 EXE 文件

    我是 prolog 新手 我已经编写了这段代码 但我想让这个 prolog 文件成为一个独立的 EXE 文件 但我不知道如何去做 我正在使用 swi prolog 来查阅该文件 我需要使用 swi prolog 使该程序可执行的分步教程 我