小编Rom*_*her的帖子

monad只是endofunctors类别中的幺半群,问题是什么?

谁首先说了以下几点?

monad只是endofunctors类别中的幺半群,问题是什么?

在一个不太重要的注意事项上,这是真的,如果是这样,你能给出一个解释(希望有一个可以被没有Haskell经验的人理解的那个)吗?

monads haskell category-theory monoids

708
推荐指数
6
解决办法
15万
查看次数

没有null的语言的最佳解释

当程序员抱怨空错误/异常时,有人经常会问我们做什么而没有null.

我对选项类型的酷感有一些基本的想法,但我没有最好的表达它的知识或语言技巧.对于普通程序员可以接近的方式写的以下内容有什么好的解释,我们可以指出那个人?

  • 默认情况下,引用/指针的不可取性是可以为空的
  • 选项类型的工作原理包括简化检查空案例的策略
    • 模式匹配和
    • monadic理解
  • 替代解决方案,如消息吃零
  • (我错过了其他方面)

null programming-languages functional-programming nullpointerexception non-nullable

223
推荐指数
7
解决办法
4万
查看次数

有没有办法在Github Flavored Markdown中获得彩色文字?

我需要在github上记录一个在终端输出彩色文本的库.

我已经尝试了两种范围<style="color:red">,<font color="red">但它似乎剥离了两个标签.

唯一的方法是使用彩色文字图像吗?

编辑:

我最后添加了屏幕截图到git并使用图像链接w/github相对网址.

github github-flavored-markdown

106
推荐指数
5
解决办法
13万
查看次数

用于记录JSON结构的语法

所以我试图记录我正在写的api返回的json的格式,我想知道json结构的文档是否有任何流行的格式.

注意我不是要测试或验证任何东西,我只是将它用于文档.还有一些方法可以为非常量添加注释(总是返回具有相同值的项).

这是我目前使用的没有完全考虑过的方案:

Plain names refer to identifiers or types.
Some types have type-comment
Strings that appear to be constant(always returned for that type of request) strings are "str"
Constant Numbers would be just the number
Constant null is null
Booleans are true/false for constant booleans or Boolean otherwise
[a,b,c] are lists with 3 items a,b,c
[...  ...] is a list of repeating elements of some types/constants/patterns
{a:A,b:B,c:c} and {... ...}  is the same for a dictionary.
Run Code Online (Sandbox Code Playgroud)

例:

story          := …
Run Code Online (Sandbox Code Playgroud)

documentation json notation

66
推荐指数
4
解决办法
5万
查看次数

printf和co如何区分float和double

由于它没有强类型,我认为它只是选择了正确的内存大小并根据参数的类型对其进行解释.但是float和double都使用%f,它们的大小不同.

PS我可以看到如何通过将值复制到临时和转换(这是正确的吗?)可以起作用,但是它对scanfs/sscanf有什么作用?

c floating-point printf

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

Linux命令行如何在没有引脚的情况下接受蓝牙设备的配对

有没有办法在Linux中配对设备而不需要引脚(出于测试目的,所以我需要在没有人工交互的情况下完成,假设你有root权限)?

bluez-simple-agent似乎需要一个引脚,除了一些简单的设备,如鼠标.

linux command-line bluetooth bluez

32
推荐指数
5
解决办法
10万
查看次数

为msvc或替代解决方法模拟__typeof__的最佳方法是什么?

我有一些代码

#define DEBUG_PRINT(x,...) \
    do \
    {\
        _Pragma("GCC diagnostic push") \
        _Pragma("GCC diagnostic ignored \"-Wunused-value\"") \
        __typeof__((0,x)) _x = x; \
        _Pragma("GCC diagnostic pop") \
        DEBUG_PRINT_PTR((#x), &_x, __VA_ARGS__);\
    } while(0)


//The repetition of debug_print_printf_specifier is to avoid repetition for custom types.
#define DEBUG_PRINT_PTR(xstr, xp,...) \
_Generic((*xp), \
const char *: debug_print_printf_specifier(xstr, (void *)xp, TYPE_PTR_TO_PRINTF_SPECIFIER(xp), __FILE__, __LINE__, _my_func__, debug_print_options_apply_group_options(&((debug_print_options){__VA_ARGS__}))),\
char *: debug_print_printf_specifier(xstr, (void *)xp, TYPE_PTR_TO_PRINTF_SPECIFIER(xp), __FILE__, __LINE__, _my_func__, debug_print_options_apply_group_options(&((debug_print_options){__VA_ARGS__}))),\
int: debug_print_printf_specifier(xstr, (void *)xp, TYPE_PTR_TO_PRINTF_SPECIFIER(xp), __FILE__, __LINE__, _my_func__, debug_print_options_apply_group_options(&((debug_print_options){__VA_ARGS__}))),\
float: debug_print_printf_specifier(xstr, …
Run Code Online (Sandbox Code Playgroud)

c overloading typeof printf-debugging visual-studio-2012

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

为什么不消耗IEnumerable?/与python相比,c#中的生成器如何工作?

所以我认为我理解c#yield return与pythons yield大致相同,我认为我理解.我认为编译器将一个函数转换为一个对象,该对象带有一个指向执行应该恢复的位置的指针,当对象的下一个值的请求运行到下一个yield时,它会更新指针的恢复执行位置并返回一个值.

在python中,它的工作方式类似于延迟评估,因为它根据需要生成值,但是一旦使用了值,如果不保存在另一个变量中,则可以使用gc.尝试迭代这样一个函数的结果两次返回一个空的iterable,除非你将它转换为一个列表.

恩.

def y():
    list = [1,2,3,4]

    for i in list:
        yield str(i)

ys = y()
print "first ys:"
print ",".join(ys)
print "second ys:"
print ",".join(ys)
Run Code Online (Sandbox Code Playgroud)

输出

first ys:
1,2,3,4
second ys:
Run Code Online (Sandbox Code Playgroud)

直到最近我才认为c#也是如此,但在dotnetfiddle中尝试失败了.

http://dotnetfiddle.net/W5Cbv6

using System;
using System.Linq;
using System.Collections.Generic;

public class Program
{
    public static IEnumerable<string> Y()
    {
        var list = new List<string> {"1","2","3","4","5"};
        foreach(var i in list)
        {
            yield return i;
        }
    }

    public static void Main()
    {


        var ys = Y();
        Console.WriteLine("first ys");
        Console.WriteLine(string.Join(",", …
Run Code Online (Sandbox Code Playgroud)

c# python iteration coroutine

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

用手提出ArgumentError是不好的形式?

如果要添加未提供的额外检查argparse,例如:

if variable a == b then c should be not None 
Run Code Online (Sandbox Code Playgroud)

......允许ArgumentError自己提升吗?

或者,你应该提高Exception吗?

这种情况的常见做法是什么?假设你添加了一段几乎像库的本地扩展的代码.您是否应该使用与您正在扩展的库提供的异常类型相同的异常类型?

python exception-handling argparse

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

从视频游戏截图中尽可能多地找到文本的最佳方法是什么?

我正在尝试使用tesseract ocr工具从视频游戏中提取ocr文本(我正在预处理屏幕截图并将它们传递给命令行工具tsv输出并解析它).

我想将它用于测试自动化,与硒网测试不同.那是我希望能够等待元素出现而不是睡觉和点击按钮(主要是菜单).

为了能够做到这一点,我需要能够始终如一地找到相同的按钮文本,并在一系列视频游戏中找到尽可能多的文本.为了抽象,我更喜欢每个游戏的预处理/ tesseract选项是相同的.

我可以添加每个游戏中遇到的每个单词的字典,但我不愿意.

我有一个设置,我可以测试预处理/ tesseract选项的许多不同组合,并查看结果的单词.

我已经尝试将屏幕截图(70-90 dpi)吹了5次,并在将其传递给tesarect之前将其设置为灰度.

我可以使用哪些其他技术来提高结果的数量和准确性?我应该看哪些tesseract旋钮?我可以添加任何其他有用的预处理吗?

PS我发现,如果我将图片放大到两倍长/宽,tesseract似乎因为图像的内存耗尽而爆炸.有静态限制吗?我可以找到它,所以我可以炸掉最大尺寸附近的图像吗?我可以调整吗?

python ocr automated-tests tesseract ui-automation

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