小编Fra*_*ser的帖子

将StateT IO与State相结合

如果我有一个功能f :: State Int (),是否可以在另一个功能中使用它g :: StateT Int IO ()?嵌套它f = do { something; g }无法进行类型检查Couldn't match type 'Data.Functor.Identity.Identity' with 'IO'.

haskell

11
推荐指数
1
解决办法
639
查看次数

在模块之间共享镜头字段定义的惯用方法

如果我有两个模块都使用Control.Lens.TH' makeFields从记录生成字段,并且每个不同模块中的记录具有相同的字段名称,那么确保两个模块使用相同name镜头定义的最佳方法是什么?的HasName,而不必在模块中的一个类取决于其它?

目前,我正在使用另一个以SharedFields单个记录命名的模块,每个字段都需要共享,然后SharedFields在需要生成TH字段的任何其他内容中导入模块 - 但这很尴尬且容易出错.

module First where

import Control.Lens

data First = First { firstName :: Bool }
  deriving (Read, Show, Eq)
makeFields ''First
Run Code Online (Sandbox Code Playgroud)
module Second where

import Control.Lens

data Second = Second { secondName :: () }
  deriving (Read, Show, Eq)
makeFields ''Second
Run Code Online (Sandbox Code Playgroud)
module Third (name) where

import First
import Second
Run Code Online (Sandbox Code Playgroud)

haskell haskell-lens

6
推荐指数
0
解决办法
133
查看次数

活动在setAdapter(ArrayAdapter)上崩溃;

试图编写我的第一个Android的ArrayAdapter,目前惨遭失败.它在该setAdapter(adapter);行崩溃并抛出NullPointerException.

ContractTestActivity:

public class ContractTestActivity extends Activity {

    private ArrayList<Contract> contracts;
    public final String TAG = "ContractTest";
    //public Contract newContract = new Contract();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);
        ListView list;
        list = (ListView)findViewById(R.id.list);
        ArrayAdapter<Contract> adapter = new ContractAdapter(this, android.R.layout.simple_list_item_1, contracts);
        list.setAdapter(adapter);
    }
}
Run Code Online (Sandbox Code Playgroud)

ContractAdapter:

public class ContractAdapter extends ArrayAdapter<Contract> {


        private ArrayList<Contract> contracts;

        public ContractAdapter(Context context, int view, ArrayList<Contract> passedContracts) {
                super(context, view, passedContracts);
                contracts = …
Run Code Online (Sandbox Code Playgroud)

java android android-arrayadapter

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

初始化一个类实例?

我想初始化类的实例consoleDroidconsoleDroid console = new consoleDroid();,但它抛出一个class, interface, or enum expected编译错误.什么是初始化课程的正确方法?

caseSelector.java:

package com.caseselector;

import android.app.Activity;
import android.os.Bundle;

consoleDroid console = new consoleDroid();

public class caseSelector extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        console.create();
    }
}
Run Code Online (Sandbox Code Playgroud)

consoleDroid.java:

package com.caseselector;

import android.view.View;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.Button;

public class consoleDroid {

    private static String output;
    private Button consoleButton;
    private TextView consoleView;
    private EditText …
Run Code Online (Sandbox Code Playgroud)

java android

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

模式绑定中的单态限制

{-# LANGUAGE NoMonomorphismRestriction #-}
module Try where

f :: IO (a -> IO String)
f = return $ const getLine

main :: IO ()
main = do
  g <- f
    :: IO (a -> IO String)
  g "String" >>= print
  g 5 >>= print
Run Code Online (Sandbox Code Playgroud)

即使使用NoMonomorphismRestriction标志和显式类型签名,该模块也无法编译Couldn't match expected type ‘[Char]’ with actual type ‘Int’,尽管g它是完全多态的.

haskell

2
推荐指数
1
解决办法
45
查看次数

访问外部变量

Object({
  a: "string",
  b: function() { return a; }
}).b()
Run Code Online (Sandbox Code Playgroud)

抛出a is not defined.可以a从里面进入b吗?

javascript scope

0
推荐指数
1
解决办法
59
查看次数