我遇到过这样的代码:
line += addr & 0x3fULL;
Run Code Online (Sandbox Code Playgroud)
显然,'U'和'L'不是十六进制数字.我猜测该十六进制数字文字末尾的'ULL'意味着"无符号长龙" - 我是否正确?(这种事情很难谷歌)如果是这样那么这是数字上的某种后缀修饰符?
我按照CPU的指示在我的Ubuntu 15.10机器上安装了TensorFlow:
$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
Run Code Online (Sandbox Code Playgroud)
然后当我运行Python REPL并导入tensorflow时,我得到:
$ python
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/phil/.local/lib/python2.7/site-packages/tensorflow/__init__.py", line 4, in <module>
   from tensorflow.python import *
  File "/home/phil/.local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 13, in <module>
    from tensorflow.core.framework.graph_pb2 import *
  File "/home/phil/.local/lib/python2.7/site-packages/tensorflow/core/framework/graph_pb2.py", line 16, in <module>
    from tensorflow.core.framework import attr_value_pb2 as     tensorflow_dot_core_dot_framework_dot_attr__value__pb2
  File …Run Code Online (Sandbox Code Playgroud) 我希望能够在编译时使用模板元编程创建一个计算值数组(为了简单起见,我希望每个值都是它的索引的平方).这可能吗?如何初始化数组中的每个位置?
(是的,有更简单的方法可以在不使用模板元编程的情况下执行此操作,只是想知道是否可以使用数组执行此操作.)
我最近一直在做一些OCaml编程来学习语言并且更熟悉函数式编程.最近,我开始认为我希望能够扩展现有类型(或者内置或者我自己的类型),例如:
type bexp =
  And of bexp * bexp
| Or of bexp * bexp
| Xor of bexp * bexp
| Not of bexp;;
Run Code Online (Sandbox Code Playgroud)
现在让我们说我想在这种类型中添加一个Nop变体,但仅用于新类型 - 有点像继承.嘿,这些应该是代数数据类型,对吧?那么为什么不是这样的:
type nbexp = bexp | Nop nbexp ;;
Run Code Online (Sandbox Code Playgroud)
...但这不是有效的OCaml,它给出了语法错误.基本上,我想要做的就是说我希望nbexp包含bexp包含的所有内容,并为此添加一个Nop.我想这是不可能的,因为,例如,如果您使用And构造函数,则无法确定它是bexp类型还是nbexp类型.(我认为构造函数Nop采用nbexp也可能存在问题.)
那么有没有办法在OCaml中做这样的事情?而且,这是否是Haskell中可行的事情(也许是类型类)?
LLVM非常模块化,允许您相当容易地定义新的后端.但是,有关创建LLVM后端的大多数文档/教程都侧重于添加新的处理器指令集和寄存器.我想知道为LLVM创建VHDL后端需要什么?是否有使用LLVM从一种更高级语言转到另一种语言的示例?
只是为了澄清:有没有将LLVM IR翻译成更高级语言而不是汇编语言的例子?例如:您可以使用Clang在C中读取,使用LLVM进行一些优化,然后使用其他语言(如Java或Fortran)编写代码.
我听说OCaml 3.12中有"头等舱模块".它们有什么优势?什么孩子的事情会更容易?他们试图解决什么问题?一个简单的例子就足够了.
我有一个范围类型定义为:
type 'a range = Full | Range of ('a * 'a)
Run Code Online (Sandbox Code Playgroud)
但是,我想将'a'限制为整数或浮点数或字符,而没有其他有效类型的'a.
Range(0,10) (* valid *)
Range(0.0, 10.0) (* valid *)
Range('a', 'z') (* valid *)
Range("string1", "string2") (* other types like this shouldn't type check *)
Run Code Online (Sandbox Code Playgroud)
我想我可以将我的类型定义更改为:
type sequential   = S_int of int | S_float of float | S_char of char ;;
type range = Full | Range of (sequential * sequential);;
Run Code Online (Sandbox Code Playgroud)
但是,这将允许以下内容:
Range(S_int(0), S_float(10.0));; (* problem: mixes int and float *)
Run Code Online (Sandbox Code Playgroud)
...但我希望Range的两个组件都是相同的类型.
我想另一种方法是创建一个int_range类型,一个float_range类型和一个char_range类型,但我想知道是否还有另一种方法?
当人们在OCaml中引用"修订语法"时,它们是否意味着这将成为该语言的新语法,还是仅仅是在CamlP4中创建的替代语法?如果是前者,那么"修订后的语法"什么时候成为OCaml的"官方语法"?
在python中,你可以这样做,让你使用缩短的模块名称:
>>> import tensorflow as tf
Run Code Online (Sandbox Code Playgroud)
从那时起,您可以参考tf,而不必在tensorflow任何地方打字.
Juila有可能这样吗?