我有一个Map (Int,Int) Char,我试图Char在密钥中包含的位置绘制每个s.我的职责是:
import qualified Data.Map.Strict as SM
data Position = Position !GLint !GLint
drawMirrors :: SM.Map (Int,Int) Char -> IO()
drawMirrors mirrors = do
mapM_ (\(x,y) c -> drawMirror c (Position x y)) mirrors
drawMirror :: Char -> Position -> IO()
drawMirror orientation (Position x y) = do
-- Some irrelevant stuff
Run Code Online (Sandbox Code Playgroud)
在drawMirrors mirrors = do mapM_ (\(x,y) c -> drawMirror c (Position x y)) mirrors行,我得到的错误:
Run Code Online (Sandbox Code Playgroud)src\Main.hs:200:33: Couldn't match expected type `Char -> …
io dictionary haskell functional-programming purely-functional
我有以下数据可以发货或不发货:
data LaserCollisionResult = NoCollision | LaserToLaserCollision Ship | LaserToShipCollision Ship deriving (Eq, Show)
Run Code Online (Sandbox Code Playgroud)
然后,稍后,我试图检查LaserCollisionResult是否为LaserToLaserCollision类型,但是我收到错误.我的[lambda]功能是这样的:
laserPaths' = map (\(p,r) -> if r == LaserToLaserCollision then doSomethingWith p else p) $ zip laserPaths laserCollisionResults
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Couldn't match type 'LaserCollisionResult' with 'Ship -> LaserCollisionResult'
Expected type: [Ship -> LaserCollisionResult]
Actual type: [LaserCollisionResult]
In the second argument of 'zip', namely laserCollisionResults.
Run Code Online (Sandbox Code Playgroud)
如何检查laserCollisionResults中的LaserCollisionResult是否属于LaserToLaserCollision类型?
haskell types functional-programming lazy-evaluation purely-functional
出于某种原因,如果len <3,我将在delete []缓冲行中得到堆损坏错误.
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case ID_BUTTON_OK:
{
int len = SendMessage(mapName, WM_GETTEXTLENGTH, 0, 0);
char* buffer = new char[len+1];
ZeroMemory(buffer,sizeof(buffer));
len = SendMessage(mapName, WM_GETTEXT, (WPARAM)len+1, (LPARAM)buffer);
if(isMapNameLegal(buffer)) // Makes sure the map name is legal
{
}
else
{
MessageBox(NULL,"The map name is illegal","Error",MB_ICONERROR);
}
delete[] buffer;
}
break;
Run Code Online (Sandbox Code Playgroud)
有isMapNameLegal.顺便说一句,它是静态的:
bool Creator::isMapNameLegal(char* name)
{
if(strlen(name)<=3)
return false;
int x=0;
while(name[x]!='\0')
{
if(name[x]<48 && name[x]!=32) //32=='\r', 48==0,
return false;
if(name[x]>57 && name[x]<65) //57==9, 65==A
return false;
if(name[x]>90 …Run Code Online (Sandbox Code Playgroud) 在Haskell中,如何将x个数字列表更改为n个n个数字列表?
第一个子列表的编号从第一到第十,第二个列表从第11到第20 ......
myFunction :: [Int] - > [[Int]]
haskell functional-programming function list purely-functional
例如,假设我有一个Game类:
class Game{
public:
Game();
~Game();
void CreateWindowClass(HINSTANCE);
void CreateRessources(HINSTANCE);
void ShowMainScreen();
Winsock* CreateWinsock();
MessageLog* CreateMessageLog();
D2DResources* CreateD2DResources(HWND);
HWND Getm_hWnd();
public:
D2DResources* pD2DResources;
Winsock* pWinsock;
MessageLog* pMessageLog;
private:
HWND m_hWnd;
};
Run Code Online (Sandbox Code Playgroud)
而Game中的3个指针分配如下:
Winsock* Game::CreateWinsock()
{
pWinsock = new Winsock;
return pWinsock;
}
Run Code Online (Sandbox Code Playgroud)
这会导致任何问题吗?另外,我会删除动态创建的对象,如下所示:delete pWinsock;?
我想把一个元素放在列表中间,所以我做了:
update myPosition myValue $ fromList myList
Run Code Online (Sandbox Code Playgroud)
现在,我有一种类型,Seq a但我需要整个a([a])列表.如何从此行中提取值以返回整个列表myValue?
Seq是来自Data.Sequence.