小编mca*_*dre的帖子

鸡肉计划是否相当于Perl的0美元?

如何在Chicken Scheme中可靠地获取脚本名称?

似乎-ss吃掉了脚本名称,所以除非我使用点斜杠来运行我的脚本,否则它不可见.

scriptedmain.scm:

#!/usr/bin/env csi -q

(display (command-line-arguments))
(display "\n")
(exit)
Run Code Online (Sandbox Code Playgroud)

跟踪:

$ ./scriptedmain.scm 
(-q ./scriptedmain.scm)
wonko:Desktop andrew$ csi -ss scriptedmain.scm 
()
Run Code Online (Sandbox Code Playgroud)

scheme getmodulefilename command-line-arguments chicken-scheme

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

Clojure中的多线shebang?

目标:生成一个Clojure脚本,该脚本在运行-main时运行./script.clj.

我得到的最接近的是

#!/bin/bash
#(comment
exec clj -m `basename $0 .clj` ${1+"$@"}
exit
#)
(defn -main [args]
   (println args))
Run Code Online (Sandbox Code Playgroud)

但是Clojure不允许在多行注释中使用非Lisp代码,而Clojure没有Common Lisps的#| ... |#语法.

comments program-entry-point clojure shebang multiline

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

如何避免线程"main"中的异常clojure.lang.ArityException?

当用户不提供命令行参数时,我希望Hello World打印使用信息而不是错误跟踪.

":";exec clj -m `basename $0 .clj` ${1+"$@"}
":";exit

(ns hello
    (:gen-class))

(defn -main
    [greetee]
    (println (str "Hello " greetee "!")))

$ ./hello.clj Fred
Hello Fred!
$ ./hello.clj 
Exception in thread "main" clojure.lang.ArityException: Wrong number of args (0) passed to: hello$-main
    at clojure.lang.AFn.throwArity(AFn.java:439)
    at clojure.lang.AFn.invoke(AFn.java:35)
    at clojure.lang.Var.invoke(Var.java:397)
    at clojure.lang.AFn.applyToHelper(AFn.java:159)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.core$apply.invoke(core.clj:600)
    at clojure.main$main_opt.invoke(main.clj:323)
    at clojure.lang.FnLoaderThunk.invoke(FnLoaderThunk.java:36)
    at clojure.main$main.doInvoke(main.clj:426)
    at clojure.lang.RestFn.invoke(RestFn.java:422)
    at clojure.lang.FnLoaderThunk.invoke(FnLoaderThunk.java:36)
    at clojure.lang.Var.invoke(Var.java:405)
    at clojure.lang.AFn.applyToHelper(AFn.java:165)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.main.main(main.java:37)
Run Code Online (Sandbox Code Playgroud)

program-entry-point clojure command-line-arguments

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

libxmljs 的替代品

目标:使用 Node.js 访问网页,使用 xpath 语法操作 DOM,并打印新的 DOM。

libxmljs 没问题,但它有几个 NPM 无法解决的依赖项。您使用哪些库来 xpath 任意 HTML?

javascript xpath dom node.js

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

Free Pascal中的文字数组的语法是什么?

有一个50多个硬编码字节列表我想存储在一个字节数组中,但我找不到Free Pascal的硬编码数组语法.

设置使用[elem, elem, elem],那么数组使用什么?

arrays freepascal literals

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

如何禁用SMLNJ警告?

我正在尝试编写命令行脚本,但SML的警告会混淆接口.

文档说使用:

Compiler.Control.printWarnings := false;
Run Code Online (Sandbox Code Playgroud)

但是SMLNJ已将这些重命名为:

Control.printWarnings := false;
Run Code Online (Sandbox Code Playgroud)

这实际上产生了更多的打印输出.

例:

$ cat hello.sml
print "Hello World!\n";
OS.Process.exit(OS.Process.success);
$ sml hello.sml
Standard ML of New Jersey v110.72 [built: Mon Nov 14 17:30:10 2011]
[opening hello.sml]
Hello World!
val it = () : unit
[autoloading]
[library $SMLNJ-BASIS/basis.cm is stable]
[autoloading done]
hello.sml:2.1-2.36 Warning: type vars not generalized because of
   value restriction are instantiated to dummy types (X1,X2,...)
Run Code Online (Sandbox Code Playgroud)

与:

$ cat hello.sml
Control.printWarnings := false;
print "Hello World!\n";
OS.Process.exit(OS.Process.success);
$ sml hello.sml …
Run Code Online (Sandbox Code Playgroud)

command-line interface sml smlnj

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

如何消除汇编程序可执行文件的膨胀?

我已经在GasNASMYASM中工作了多平台 Hello World 代码,我想将它们相应的可执行文件从 76KB 缩小到对于 Hello World 汇编程序更合理的大小,因为基本的 Hello World C 程序会导致80KB 的可执行文件和程序集应该小得多。我相信大部分可执行文件都充满了链接器选项中的垃圾。

痕迹:

LIBS=c:/strawberry/c/i686-w64-mingw32/lib/crt2.o -Lc:/strawberry/c/i686-w64-mingw32/lib -lmingw32 -lmingwex -lmsvcrt

ld ld -o $(EXECUTABLE) hello.o $(LIBS)

hello.exe
Hello World!
Run Code Online (Sandbox Code Playgroud)

代码:

.data

msg: .ascii "Hello World!\0"

.text

.global _main

_main:

pushl $msg
call _puts

leave
movl $0, %eax
ret
Run Code Online (Sandbox Code Playgroud)

如果我删除 LIBS 中的任何选项,则链接过程会失败,或者生成的可执行文件在运行时会引发 Windows 错误。因此,合乎逻辑的做法是将调用替换puts为更简单的内容,例如 sys_write,但我不知道如何执行此 multiplatform。网上的小文档说使用它int 0x80来执行对内核的调用,但这仅适用于 Linux,不适用于 Windows,而且我希望我的汇编代码是多平台的。

optimization assembly filesize

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

FizzBu​​zz.cpp与lambdas?

我正在尝试使用lambdas在C++ 11中编写FizzBu​​zz,但是我得到了一个奇怪的编译器错误.

码:

#include <iostream>
#include <string>
#include <sstream>
#include <list>
#include <algorithm>
using namespace std;

string fizzy(int n) {
  int a = n % 3, b = n % 5;

  if (a == 0 && b == 0) {
    return "FizzBuzz";
  }
  else if (a == 0) {
    return "Fizz";
  }
  else if (b == 0) {
    return "Buzz";
  }
  else {
    stringstream out;
    out << n;
    return out.str();
  }
}

void fizzbuzz() {
  string strings[100];
  list<int> range(0, 100); …
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11

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

Common Lisp相当于Haskell的复制?

replicate是一个函数,它接受一个整数和一个序列,并返回重复n次的序列.

例如replicate 3 ["a"]返回["a", "a", "a"]

Common Lisp是否具有相同的功能,还是我必须编写一个?

haskell list common-lisp sequence replicate

4
推荐指数
2
解决办法
394
查看次数

OCaml中的脚本主要?

如何在OCaml中模拟这个Python习惯用法?

if __name__=="__main__":
   main()
Run Code Online (Sandbox Code Playgroud)

有关其他编程语言的示例,请参阅RosettaCode.

ocaml scriptedmain

4
推荐指数
2
解决办法
465
查看次数