我有一个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) 是否可以通过WooCommerce REST API访问订单,产品和客户的自定义字段?如果不是本地的,那么什么插件或变通方法或黑客工作?谢谢!
所以我最近安装的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) 我试图palindrome/1在Prolog中编写一个谓词,当且仅当它的列表输入包含一个回文列表时才是真的.
例如:
?- palindrome([1,2,3,4,5,4,3,2,1]).
Run Code Online (Sandbox Code Playgroud)
是真的.
任何想法或解决方案?
以此为例: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) 我是prolog的新手并且正在努力学习如何编程.我想知道如何x^y在Prolog中计算都是整数.
我知道事实是这样的事情:
% exp(y,x,z) <- z is x**y
Run Code Online (Sandbox Code Playgroud) 我是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)
任何帮助将非常感激.
我正在为一个问题编写此代码,我必须从文件中读取整数并将它们存储到数组中以执行其他操作。到目前为止,我已经能够从文件中读取并将它们存储到缓冲区中。
#### 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)
我被困在这一点上,我必须将缓冲区中的这些整数存储到一个数组中。这是怎么做的?
我为此开始了一个不同的线程,我尝试使用他们给我的帮助解决它,但我无法运行该程序.任何人都可以告诉我程序中有什么问题,它应该如何?谢谢.
该程序应该为自己添加一个数组并用总和替换原始数据,因此当打印初始数组时,它会打印总和.这就是我到目前为止所做的.
请注意,必须使用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) 这是我作业的一小部分,我必须计算列表的元素,如果计数== 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.
我需要定义这个名为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) 根据这本书,它是如何完成的,但我无法让它发挥作用.它给我一个错误不在范围内:'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 ×6
arrays ×2
prolog ×2
allocation ×1
api ×1
c ×1
dcg ×1
dynamic ×1
file ×1
function ×1
integer ×1
io ×1
iso-prolog ×1
json ×1
list ×1
mips ×1
palindrome ×1
rest ×1
sql ×1
woocommerce ×1