小编Vik*_*koo的帖子

参数多态性与Ad-hoc多态性

我想了解参数多态性之间的关键区别,例如Java/Scala/C++语言中泛型类/函数的多态性和Haskell类型系统中的"ad-hoc"多态性.我熟悉第一种语言,但我从未使用过Haskell.

更确切地说:

  1. 如何在Java中的类型推断算法与Haskell中的类型推断不同?
  2. 请给我一个例子,说明可以用Java/Scala编写的东西,但不能用Haskell编写(根据这些平台的模块化特性),反之亦然.

提前致谢.

java polymorphism haskell types type-inference

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

从单击命令调用另一个单击命令

我想使用一些有用的函数作为命令.为此我正在测试click库.我定义了我的三个原始函数,然后装饰为click.command:

import click
import os, sys

@click.command()
@click.argument('content', required=False)
@click.option('--to_stdout', default=True)
def add_name(content, to_stdout=False):
    if not content:
        content = ''.join(sys.stdin.readlines())
    result = content + "\n\tadded name"
    if to_stdout is True:
        sys.stdout.writelines(result)
    return result


@click.command()
@click.argument('content', required=False)
@click.option('--to_stdout', default=True)
def add_surname(content, to_stdout=False):
    if not content:
        content = ''.join(sys.stdin.readlines())
    result = content + "\n\tadded surname"
    if to_stdout is True:
        sys.stdout.writelines(result)
    return result

@click.command()
@click.argument('content', required=False)
@click.option('--to_stdout', default=False)
def add_name_and_surname(content, to_stdout=False):
    result = add_surname(add_name(content))
    if to_stdout is True:
        sys.stdout.writelines(result) …
Run Code Online (Sandbox Code Playgroud)

python stdout piping command-line-arguments python-click

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