小编dar*_*int的帖子

Emacs和Long Shell命令

有没有办法运行一个shell命令,让输出显示在一个新的缓冲区中,并让该输出逐步显示?Eshell和其他emacs终端模拟器找到了这个工作,但我认为没有办法编写脚本.

我想做的是编写一些小的elisp函数来执行运行单元测试等操作,并将输出细节写入缓冲区.

elisp函数shell命令接近我想要的但它在进程完成时立即显示所有输出.

emacs shell elisp

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

Prolog fd_domain未定义

好的,所以我正在尝试为学校项目编写这个简单的数独求解器.我正在使用SWI - Prolog,我正在使用库clpfd.

当我使用domain/3谓词时出现问题.它没有给出任何语法错误,只有程序返回"false"而不是实际的解决方案.

请原谅我的Noobness,但我完全是Prolog和声明性语言的新手.

这是我的完整代码:

:- use_module(library(clpfd)).

sudoku(Solution,Puzzle):-

    Solution = Puzzle,
    Solution =[[A1,A2,A3,A4,A5,A6,A7,A8,A9],
            [B1,B2,B3,B4,B5,B6,B7,B8,B9],
            [C1,C2,C3,C4,C5,C6,C7,C8,C9],
            [D1,D2,D3,D4,D5,D6,D7,D8,D9],
            [E1,E2,E3,E4,E5,E6,E7,E8,E9],
            [F1,F2,F3,F4,F5,F6,F7,F8,F9],
            [G1,G2,G3,G4,G5,G6,G7,G8,G9],
            [H1,H2,H3,H4,H5,H6,H7,H8,H9],
            [I1,I2,I3,I4,I5,I6,I7,I8,I9]],

    valid_domain(Puzzle,1,9),

    %Squares

    Sqr1 = [A1,A2,A3,B1,B2,B3,C1,C2,C3],
    Sqr2 = [A4,A5,A6,B4,B5,B6,C4,C5,C6],
    Sqr3 = [A7,A8,A9,B7,B8,B9,C7,C8,C9],
    Sqr4 = [D1,D2,D3,E1,E2,E3,F1,F2,F3],
    Sqr5 = [D4,D5,D6,E4,E5,E6,F4,F5,F6],
    Sqr6 = [D7,D8,D9,E7,E8,E9,F7,F8,F9],
    Sqr7 = [G1,G2,G3,H1,H2,H3,I1,I2,I3],
    Sqr8 = [G4,G5,G6,H4,H5,H6,I4,I5,I6],
    Sqr9 = [G7,G8,G9,H7,H8,H9,I7,I8,I9],


    %Rows

    Row1 = [A1,A2,A3,A4,A5,A6,A7,A8,A9],
    Row2 = [B1,B2,B3,B4,B5,B6,B7,B8,B9],
    Row3 = [C1,C2,C3,C4,C5,C6,C7,C8,C9],
    Row4 = [D1,D2,D3,D4,D5,D6,D7,D8,D9],
    Row5 = [E1,E2,E3,E4,E5,E6,E7,E8,E9],
    Row6 = [F1,F2,F3,F4,F5,F6,F7,F8,F9],
    Row7 = [G1,G2,G3,G4,G5,G6,G7,G8,G9],
    Row8 = [H1,H2,H3,H4,H5,H6,H7,H8,H9],
    Row9 = [I1,I2,I3,I4,I5,I6,I7,I8,I9],

    %Columns …
Run Code Online (Sandbox Code Playgroud)

prolog clpfd

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

标签 统计

clpfd ×1

elisp ×1

emacs ×1

prolog ×1

shell ×1