小编lur*_*ker的帖子

Ruby浮动到Binary32

我一直在寻找是否有一种方法可以将浮点数(ex 123.456:)转换为binary32。我发现了很多从binary32到float的解决方案,反之亦然。

ruby floating-point binary

3
推荐指数
2
解决办法
1561
查看次数

在代码中这里做什么?

在下面的代码中,while循环是做什么的(用"loop"标记)?: -

int main(void)
{
    char code;

    for (;;)
    {
        printf("Enter operation code: ");
        scanf(" %c", &code);
        while (getchar() != '\n')   // loop
            ;
        switch (code)
        {
        case 'i':
            insert();
            break;
        case 's':
            search();
            break;
        case 'u':
            update();
            break;
        case 'p':
            print();
            break;
        case 'q':
            return 0;
        default:
            printf("Illegal code\n");
        }
        printf("\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

Diclaimer:代码不完整,它只是代码的一部分,因为它不能编译.

c loops

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

Prolog中列表中的元素总和几乎无需解释

我是prolog编程的初学者,我希望你谦虚并帮助我解决这个困惑

我正面临一个问题来计算prolog的总和,我有答案,但对我来说并不是那么清楚.答案是:

list_sum([], 0).
list_sum([Head | Tail], Total) :-
   list_sum(Tail, Sum1),
   Total = Head + Sum1.
Run Code Online (Sandbox Code Playgroud)

我不明白的是Sum1程序将如何以及如何按步骤工作

它会首先检查第一个条件,list_sum([], 0).而条件不满足它会将列表分成两部分Head,Tail然后呢?


我希望你接受一个小小的初学者并给他一些时间来纠正他的困惑.
谢谢你们

prolog

3
推荐指数
2
解决办法
541
查看次数

HOWTO Common Lisp包(库)的定义和用法?

我已经在一些Lisp源文件中开发了一些Common Lisp函数,我希望这些函数可以轻松地用于我编写的其他函数,或者如果我认为它们对其他人有用,则可以在github上使用.现在,我刚刚将它们放在一些预先定义的文件夹中并使用(require "/path/to/my/modules/module.lisp").

我想要了解什么是正确的(规范的Lisp)方法来定义模块的Lisp库.问题的第二部分是如何使用它们(我是否定义了它们,或者我是否从其他人那里获得了它们).

我一直在阅读了很多关于defpackagedefsystemasdf.但我读过的所有内容似乎都集中在这项任务的某个特定角落.我在查看自定义模块创建,部署和使用的大局方面遇到了很多麻烦.所以假设我面前有一个Lisp环境(CLISP或SBCL)以及一个或多个.lisp文件,我想制作一个软件包或库,是否有一个文件可以解释哪些步骤需要这样做?这可能是我已经读过的东西,但由于不理解上下文而没有跟踪.我所读到的关于ASDF的内容在功能上看起来似乎是我所追求的,但我不知道ASDF是否是我唯一的选择,或者它是否恰好是事实上的标准以及大多数其他人使用的,或者随你.我在SBCL玩了一下,并且不确定我是否正确使用它,并且没有看到如何在CLISP中设置它的信息.所以我想要了解什么是这个任务的中间,香草方法.

我知道这是一个庞大,草率的子问题.再说一次,如果有一些很好的参考资料,我可以阅读.我只是在查看它应该如何工作,以及是否有任何"最佳"方法,或者在Lisp中是否有点"狂野西部"选择图书馆时遇到一些麻烦 - 管理员 - 你喜欢的方法.我做谷歌的事情并阅读任何看起来相关的东西,但我的大脑正在全力以赴.

谢谢.

lisp common-lisp asdf package quicklisp

3
推荐指数
2
解决办法
772
查看次数

如何释放一个char指针数组?

我使用此方法将列表中的值转换为数组,以便在execvp()中使用 - 系统调用:

char **list2argarray(struct shellvalue *values, int count)
{
    char **array = (char **)malloc((count + 1) * sizeof(char *));
    int i = 0;

    while (values)
    {
        char *word = values->word;

        array[i] = (char *)malloc(sizeof(word) + 1);
        strcpy(array[i], word);
        values = values->next;
        i++;
    }
    array[i] = NULL;
    return array;
}
Run Code Online (Sandbox Code Playgroud)

什么是释放这种阵列的正确方法?我试过像这样的东西

void freeargpointer(char **array, int count)
{
    int i = 0;

    while (*array)
    {
        free(*array);
        (*array)++;
    }
}
Run Code Online (Sandbox Code Playgroud)

但每当我到达free-syscall时,在调试时,程序崩溃时会出现如下错误:

free():下一个大小无效(快):0x000000000060c180****

c arrays malloc free pointers

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

MySQL有两个不同的密码?

我相信他们是不同事物的密码,但我不确定是什么.当在终端连接到MySQL时,我输入/usr/LOCAL/mysql/BIN/mysql -h host -u username -p然后提示我输入密码,密码是''.但是当使用PHP连接到MySQL时,我使用以下代码并且它可以工作

DEFINE('DB_HOST', 'localhost'); 
DEFINE('DB_USER', 'root'); 
DEFINE('DB_PASS', 'root'); 

$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASS,) or 
die('could not connect: '. mysqli_connect_error() );
Run Code Online (Sandbox Code Playgroud)

如果我要使用DEFINE('DB_PASS', '');它返回"拒绝访问用户'root'@'localhost'(使用密码:NO)",为什么似乎有两个单独的密码?

php mysql mamp mamp-pro

3
推荐指数
2
解决办法
1533
查看次数

将列表1中的特定数字与列表2中的特定数字进行交换

我最近一直在刷一些Prolog.我有点喜欢提出随机问题来尝试解决然后解决它们.这一点非常艰难,我不会放弃我已经着手解决的问题.

问题:我想创建一个谓词,它将有2个预定列表,2个数字要交换,然后在交换完成后输出列表.

进一步说明:我希望从列表1中找到一个特定的唯一编号,并使用列表2中的特定唯一编号交换它,以便如果我有2个列表... [7,2,7] ,8,5]和[1,2,3,8,7,9,8],然后给出谓词2个数字(只说8和7),那么数字8和数字7将被交换如果数字8在第一个列表中而数字7在第二个列表中,则在列表IF和ON之间.(它将忽略第二个列表中的8和第一个列表中的7).

具有预期答案的示例查询:

?- bothSwap([7,2,7,8,5],[1,2,3,8,7,9,8],8,7,X,Y).
X = [7,2,7,7,5], Y = [1,2,3,8,8,9,8].
Run Code Online (Sandbox Code Playgroud)

我有点陷入困境:

bothSwap([],L2,N1,N2,[],L2).
bothSwap(L1,[],N1,N2,L1,[]).
bothSwap([H1|T1],[H2|T2],N1,N2,X,Y) :- H1 == N1, H2 == N2, bothSwap(T1,T2,N1,N2,D1,D2), append(D1,[H2],X), append(D2,[H1],Y).
bothSwap([H1|T1],[H2|T2],N1,N2,X,Y) :- H1 == N1, H2 =\= N2, bothSwap([H1|T1],T2,N1,N2,D1,D2).
bothSwap([H1|T1],[H2|T2],N1,N2,X,Y) :- H1 =\= N1, H2 == N2, bothSwap(T1,[H2|T2],N1,N2,D1,D2).
Run Code Online (Sandbox Code Playgroud)

有什么聪明的头脑愿意和我一起解决这个问题吗?:)

predicate list prolog

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

为什么prolog使用最通用的统一者而不是简单的统一者

Prolog使用最通用的统一器而不仅仅是统一器,为什么会这样?

如果我没错,那么我认为,因为Prolog是基于回溯的,如果我们不使用大多数通用的统一者,那么我们会错过变量统一的某些组合吗?

prolog

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

偶数和奇数列表

我正在尝试实现一个将列表分成两个列表的Prolog程序.第一个将包含偶数位置的数字,第二个包含数字是奇数位置.

例如:even_odd([1,2,4,7,5],Even,Odd).将导致Even=[2,7].Odd=[1,4,5].

我找到了比谷歌搜索问题更优雅的解决方案,但是我想在我的代码中找到问题所在(可能是操作员滥用)因为我真的认为我对Prolog操作符的理解非常差(特别是在算术比较中) .谷歌搜索只会使情况变得更糟,每个网站都有完全不同的解释.

我的代码:

even_odd([], [], []).
even_odd([H|T], Even, Odd) :-
    length([H|T], X),
    X mod 2 is 0,
    append(Even1, H, Even),
    even_odd(T, Even1, Odd).
even_odd([H|T], Even, Odd) :-
    length([H|T], X),
    X mod 2 is 1,
    append(Odd1, H, Odd),
    even_odd(T,Even,Odd1).
Run Code Online (Sandbox Code Playgroud)

我试过跟踪,我知道问题在于X mod 2 is 1或者0,它们都不是真的.如果我有一个三个元素的列表并且改变X is 3它的条件是完全没问题的,但是这个部门似乎搞得一团糟,所以任何想法?

list prolog

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

iostream 是否包含 cstdio 的功能?

我使用开发 C++ 5.11。TDM-GCC 4.8.1

并且这段代码运行良好。

#include<iostream>
using namespace std;

int main()
{
printf("%d\n", 42);
cout << "good";
}
Run Code Online (Sandbox Code Playgroud)

但据我所知,iostream 不包括“printf”。( http://en.cppreference.com/w/cpp/header/iostream )

为什么这段代码会运行?iostream 实际上包括 printf 吗?它是一种标准吗?

c++

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

标签 统计

prolog ×4

c ×2

list ×2

arrays ×1

asdf ×1

binary ×1

c++ ×1

common-lisp ×1

floating-point ×1

free ×1

lisp ×1

loops ×1

malloc ×1

mamp ×1

mamp-pro ×1

mysql ×1

package ×1

php ×1

pointers ×1

predicate ×1

quicklisp ×1

ruby ×1