小编Amj*_*jad的帖子

如何在Haskell中使用过滤功能?

我有一个haskell程序,根据输入n列出[1..n]中的所有整数.我想根据条件过滤某些数字并显示为列表.我在哪里以及如何使用过滤功能/条件?

根据haskell文档:

filter :: (a -> Bool) -> [a] -> [a]
Run Code Online (Sandbox Code Playgroud)

filter,应用于谓词和列表,返回满足谓词的那些元素的列表; 即

filter p xs = [ x | x <- xs, p x]
Run Code Online (Sandbox Code Playgroud)

haskell function

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

WooCommerce REST API自定义字段

是否可以通过WooCommerce REST API访问订单,产品和客户的自定义字段?如果不是本地的,那么什么插件或变通方法或黑客工作?谢谢!

api rest custom-fields woocommerce woocommerce-rest-api

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

'JSON'附近的语法不正确 - SQL Server 2016

所以我最近安装的SQL Server 2016 CTP3主要用于JSON输出功能.我试图在我的SQL查询中使用它,就像它在MSDN下面的链接中显示的那样.关键字JSON不会变为蓝色并出现错误"JSON'附近的语法不正确"

https://msdn.microsoft.com/en-us/library/dn921882%28v=sql.130%29.aspx?f=255&MSPPError=-2147217396

可能有什么不对?

编辑:我正在使用AdventureWorks DB for SQL Server 2016进行测试.查询是

SELECT * FROM Person.Contact FOR JSON AUTO
Run Code Online (Sandbox Code Playgroud)

sql json sql-server-2016

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

Prolog - Palindrome Functor

我试图palindrome/1在Prolog中编写一个谓词,当且仅当它的列表输入包含一个回文列表时才是真的.

例如:

?- palindrome([1,2,3,4,5,4,3,2,1]).
Run Code Online (Sandbox Code Playgroud)

是真的.

任何想法或解决方案?

prolog palindrome dcg

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

如何在WinGHCi中运行这个haskell程序?

以此为例:http: //www.haskell.org/haskellwiki/99_questions/Solutions/32

(**) Determine the greatest common divisor of two positive integer numbers. Use Euclid's algorithm.

gcd' 0 y = y
gcd' x y = gcd' (y `mod` x) x
myGCD x y | x < 0     = myGCD (-x) y
          | y < 0     = myGCD x (-y)
          | y < x     = gcd' y x
          | otherwise = gcd' x y
The Prelude includes a gcd function, so we have to choose another name for ours. …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Prolog Functor - 计算x ^ y

我是prolog的新手并且正在努力学习如何编程.我想知道如何x^y在Prolog中计算都是整数.

我知道事实是这样的事情:

% exp(y,x,z) <- z is x**y
Run Code Online (Sandbox Code Playgroud)

prolog exponentiation iso-prolog

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

将小写字母转换为大写字母

我是Haskell的新手,并且有一些定义函数的问题,该函数将所有小写字母转换为大写并保持其余部分不变.

到目前为止,我试图在我的书中解决这个问题:

capitalise :: String -> String
capitalise xs = [capitalise2 ch| ch<-xs]

capitalise2 :: Char -> Char
capitalise2 ch 
    | isLower ch    = chr (ord ch - 32)
    | otherwise    = ch
Run Code Online (Sandbox Code Playgroud)

我收到错误:

p3.hs:6:7: Not in scope: `isLower'
p3.hs:6:23: Not in scope: `chr'
p3.hs:6:28: Not in scope: `ord'
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.

haskell

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

MIPS:将整数数据从文件存储到数组中

我正在为一个问题编写此代码,我必须从文件中读取整数并将它们存储到数组中以执行其他操作。到目前为止,我已经能够从文件中读取并将它们存储到缓冲区中。

#### Read Data from File
li $v0, 14              # system call for read from file
move $a0, $s6     
la $a1, buffer          # address of buffer from which to read
li $a2, 1000            # hardcoded buffer length
syscall                 # read from file
Run Code Online (Sandbox Code Playgroud)

当我这样做时:它成功地显示文件的内容,这些内容在单独的行上是整数。

li $v0, 4           # syscall for printing a string
la $a0, buffer          # load read data in $a0
syscall
Run Code Online (Sandbox Code Playgroud)

我被困在这一点上,我必须将缓冲区中的这些整数存储到一个数组中。这是怎么做的?

arrays io file mips

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

C - 使用动态数组向自身添加数组

我为此开始了一个不同的线程,我尝试使用他们给我的帮助解决它,但我无法运行该程序.任何人都可以告诉我程序中有什么问题,它应该如何?谢谢.

该程序应该为自己添加一个数组并用总和替换原始数据,因此当打印初始数组时,它会打印总和.这就是我到目前为止所做的.

请注意,必须使用ADDER(a,a)作为函数调用.我不允许改变它.两个参数都将通过引用传递.

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int size; //global variable

void ADDER(int *a, int *b) {
    int i;
    for (i = 0; i < size; i++) {
        b[i] += a[i];
    }     
}

int main() {
    int n, i;
    printf("Enter the number of elements: ");
    scanf("%d", &n);
    int *a = (int *)malloc(n*sizeof(int));
    int *b;
    for (i=0; i<n; i++) {
        printf("Enter element number %d: ", i);
        scanf("%d", &a[i]);
    }
    ADDER(a,a);
    for (i=0; i<n; i++) {
        printf("%d", a[i]);
    }
} …
Run Code Online (Sandbox Code Playgroud)

c arrays allocation dynamic

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

计算列表中的元素(haskell)

这是我作业的一小部分,我必须计算列表的元素,如果计数== 2则返回true.该列表的元素不是固定的,而是使用不同的函数进行过滤,例如allNumbers.我必须使用这个现有的函数来检查它是否有2个元素.

检查功能的定义是:

isTrue :: Int -> Bool
Run Code Online (Sandbox Code Playgroud)

我定义了当前函数

divisors :: Int -> [Int]
divisors n | n < 1 = []
           | otherwise = filter (\k -> n `mod` k == 0) [1..n] 
Run Code Online (Sandbox Code Playgroud)

这样做列出了除以n的所有数字.现在我需要在同一个程序中创建另一个函数isTrue,如果上面函数生成的列表只有两个数字,它将给出true.

haskell

0
推荐指数
1
解决办法
3946
查看次数

总计函数(高阶函数)

我需要定义这个名为total的函数.

total :: (Int -> Int) -> Int -> Int
Run Code Online (Sandbox Code Playgroud)

因此总f是在值n给出和f0 + f1 + .... + fn的函数

谢谢你的帮助!请.


根据这本书作为一个例子,我发现了关于功能组成:

twice f = (f . f)   
Run Code Online (Sandbox Code Playgroud)

这里,f是一个函数,结果是f由它自己组成.为此,它需要具有相同的输入和输出类型.所以我们有

twice :: (a -> a) -> a -> a
Run Code Online (Sandbox Code Playgroud)

这表明两次接受一个参数,类型(a - > a)的函数,并返回相同类型的结果.例如,如果successor是将一个添加到整数的函数,

successor :: Int -> Int
successor n = n + 1     
then
(twice successor) 12 ->(successor . successor) 12 
-> successor (successor 12) -> 14
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell - 求整数的除数

根据这本书,它是如何完成的,但我无法让它发挥作用.它给我一个错误不在范围内:'ld'.我猜我应该导入一些包但不确定哪一个.本书也在提示时使用GS模块,但我使用的是带有Prelude的WinGHCi.我在这里错过了什么?

factors :: Int -> [Int]
factors n | n < 1 = error "not positive"
          | n == 1 = []
          | otherwise = p : factors (div n p)
                        where p = ld n
Run Code Online (Sandbox Code Playgroud)

我想这也可以使用map和filter函数来完成?怎么样?

haskell integer list

-9
推荐指数
2
解决办法
2279
查看次数