问题列表 - 第37352页

确定Haskell中是否存在文件列表

我是新手,monads让我完全糊涂了.给定一个文件名列表,我想知道是否所有文件都存在.

一般来说,我想做:

import System.Directory
allFilesPresent files = foldr (&&) True (map doesFileExist files)
Run Code Online (Sandbox Code Playgroud)

但是我不知道这样做的正确方法是什么,因为这里IO Bool没有Bool涉及到.

帮助和解释会非常好,谢谢!

monads haskell

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

Const关键字附加到函数定义的末尾......它有什么作用?

假设我在C++中定义一个函数,如下所示:

void foo(int &x) const {
  x = x+10;
}
Run Code Online (Sandbox Code Playgroud)

假设我将其称为如下:

int x = 5;
foo(x);
Run Code Online (Sandbox Code Playgroud)

现在通常(没有const关键字),这将成功地x从调用者的角度更改值,因为变量是通过引用传递的.是否const关键字改变呢?(即从调用者的角度来看,现在的价值是x15?)

我想我很困惑const关键字在附加到函数定义的末尾时的作用......任何帮助都表示赞赏.

c++ const

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

互斥锁:"阻塞"是什么意思?

我一直在阅读多线程和共享资源访问,其中一个(对我而言)新概念是互斥锁.我似乎无法找到的是发现"临界区"被锁定的线程实际发生的情况.它说在许多地方线程被"阻止",但这意味着什么?是否暂停,锁定解除后会恢复吗?或者它会在"运行循环"的下一次迭代中再次尝试?

我问的原因是因为我想要系统提供的事件(鼠标,键盘等),它们(显然)在主线程上传递,在我的辅助线程的运行循环中的一个非常特定的部分处理.因此无论发生什么事件,我都会在自己的数据结构中排队.显然,数据结构需要一个互斥锁,因为它被两个线程修改.缺少的难题是:当事件在主线程上的函数中传递时会发生什么,我想将其排队,但是队列被锁定了?主线程是否会被暂停,还是会跳过锁定的部分并超出范围(丢失事件)?

multithreading mutex locking thread-safety blocking

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

定义指针变量

我无法理解定义指针变量.你能帮助我吗?

double(*)(double *) foo;
Run Code Online (Sandbox Code Playgroud)

注意:sory,我将变量func的名称编辑为foo.

c++ variables pointers

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

检查字符串中的单词

搜索字符串中单词的最佳方法是什么

preg_match("/word/",$string)

stripos("word",$string)
Run Code Online (Sandbox Code Playgroud)

或者,还有更好的方法

php

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

没有主循环的游戏编程

我的教授今天根据Pygame中的面向对象编程给了我的课.基本上他已经说过我们要创建的游戏将没有主游戏循环.虽然我认为有可能这样做(并且这个问题已经表明它是可能的)我不相信这是遵守面向对象范式所必需的.

在教授给出的图中,他展示了游戏初始化,并且当对象被实例化时,程序的控制流将在对象之间分配.

基本上我认为以这种方式实现游戏是可能的,但它不是一种理想的方式,也不是面向对象的依从性所必需的.有什么想法吗?

编辑:我们正在创建一个小行星克隆,我认为这是因为它是一个实时动作游戏的事实进一步复杂化.

pygame

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

识别Java中的语法错误

给出Java中的这段代码:

int i,j;
String[] names;
names[0] = new String("mary");
names[1] = "John";
i = names.length;
j = names[0].length();
Run Code Online (Sandbox Code Playgroud)

我需要找到错误.据我所知,第1,第2,第4和第5行是正确的,因为它们涉及简单的实例变量,向数组添加元素以及查找数组的长度.但是第3和第6行很奇怪.

你可以像第3行中的方式一样将字符串添加到数组中吗?如果数组中充满了字符串,你可以将其编入索引并对其使用length()方法吗?

java arrays syntax-error

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

在Python中将wav转换为ogg vorbis

如何使用Python将wav文件转码为ogg vorbis格式?

我可以使用PyMedia 1.3.7.3转换为mp3,但是当我将输出流类型设置为'ogg'时,我收到错误:oggvorbis_encode_init: init_encoder failed脚本死了.

python mp3 oggvorbis transcoding ogg

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

如何重新排序这些F#函数才有意义?

我以为我会和F#相处得很好,因为我在Haskell很体面,但我觉得我被一些简单的问题所困扰.我有一些简单的JSON解析器的解析代码,如下所示:

let rec parseObject tokens = function
 | '"' :: cs -> parseString tokens cs
 | ':' :: cs -> parseValue tokens cs
 | '}' :: cs -> tokens, cs
 ...

let rec parseValue tokens = function
 | c :: cs when Char.IsWhiteSpace(c) -> parseValue tokens cs
 | '{' :: cs -> parseObject tokens cs
 ...
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为parseObject不知道parseValue.不能扭转他们或我会遇到相反的问题.那我该怎么办呢?

f# functional-programming mutual-recursion

4
推荐指数
1
解决办法
155
查看次数

基于字典的开关式语句与动作

我对Python比较陌生,想知道我是在重新发明轮子还是用非pythonic方式做事 - 读错了.

我正在重写一些最初用Lua编写的解析器.有一个函数接受来自导入表及其值的字段名称,对值执行一些操作并将其存储在适当的键名下的目标字典中.

在原始代码中,它通过类似开关的语句解决,匿名函数作为操作.Python代码如下所示:

class TransformTable:
    target_dict = {}
    ...
    def mapfield(self, fieldname, value):
        try:
            {
                'productid': self.fn_prodid,
                'name': self.fn_name,
                'description': self.fn_desc,
                ...
            }[fieldname](value)
        except KeyError:
            sys.stderr.write('Unknown key !\n')

    def fn_name(val):
        validity_check(val)
        target_dict['Product'] = val.strip().capitalize()
    ...
Run Code Online (Sandbox Code Playgroud)

当然,每个"字段处理程序"函数都会执行不同的操作并存储在target_dict中的不同键中.因为Python不支持带语句的匿名函数(或者我错过了什么?)函数必须单独编写,这些函数的代码可读性较低且不必要地复杂.

任何提示如何以更优雅和更pythonic的方式执行此类任务是值得赞赏的.

谢谢

大卫

python lua design-patterns

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