Haskell新手在这里,试图编写代码来解析数学表达式.码:
isDigit :: Char -> Bool
isDigit c = c >= '0' && c <= '9'
parseNumber :: String -> Maybe (String, String)
parseNumber [] = Just ("", "")
parseNumber (h:ls)
| isDigit h
| p == Nothing = Just([h], ls) -- Digit found <<< ERROR!!
| otherwise = Just (h:fst d, snd d) -- Ends in a digit
| h == '.'
| p == Nothing = Nothing -- Ends in a point
| not ('.' `elem` (snd d)) …Run Code Online (Sandbox Code Playgroud) 假设我有一个类型T,它保证是一个数组(例如。int[32])。如何从数组的类型中获取元素的类型?
我找到了一种方法,但它涉及声明一个虚拟临时变量,我想避免这种情况:
#include <iostream>
#include <typeinfo>
using namespace std;
template <typename T>
string getArrayType() {
// Is there a better way to do this?
T dummy;
return typeid(dummy[0]).name();
}
int main() {
cout << getArrayType<int[1]>() << endl; // i
cout << getArrayType<float[1]>() << endl; // f
}
Run Code Online (Sandbox Code Playgroud) 我正试图在一个隐藏它的环境中访问Float32Array,更准确地说,就是可汗学院的编程环境.
我看到一个人做hacky做类似的事情,我调整了他的代码,但我真的不明白为什么我通过这样编写代码来访问Float32Array.
var Float32Array = (function () {
return this.Function("return Float32Array;");
})()();
var a = new Float32Array([1, 2, 3]);
Run Code Online (Sandbox Code Playgroud)
Firefox警告:
不建议使用不带new的内置类型数组构造函数,并且在ES6中将被禁止
Chrome错误
构造函数Float32Array需要'new'
这告诉我,我在这里做错了,但我不知道它是什么.我怎样才能以更强大的方式访问Float32Arrays?