小编deh*_*ehq的帖子

折叠.foldr函数组合 - Haskell

所以,我真的在煎我的大脑,试着理解foldl.foldr的成分.这是一个例子:

(foldl.foldr) (+) 1 [[1,2,3],[4,5,6]]
Run Code Online (Sandbox Code Playgroud)

结果是22,但这里到底发生了什么?

对我来说,这就是发生的事情:foldl (+) 1 [6,15].我的疑问与该foldr部分有关.它不应该将1添加到所有子列表中吗?像这样:foldr (+) 1 [1,2,3].在我脑海中,1只添加了一次,是不是?(可能不是,但我想知道如何/为什么!).

我很困惑(也许让所有的困惑,哈哈).谢谢!

haskell fold function-composition

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

Haskell - 在元组列表中列出理解(a,[a])

那么,让我们谈谈这一点:

f :: Eq a => a -> [(a,[a])] -> [(a,[a])]
f x list = [(a,[m]) | (a,[m]) <- list, x == a]
Run Code Online (Sandbox Code Playgroud)

所以:

   f 1 [(1,[1])] = [(1,[1])]
Run Code Online (Sandbox Code Playgroud)

  f 1 [(1,[1,1])] = []
Run Code Online (Sandbox Code Playgroud)

这是为什么??谢谢!

(我是新手,所以如果这是一个太愚蠢的问题,我道歉,但我真的找不到解释)

haskell tuples list-comprehension

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

地图.foldr函数组合 - Haskell

所以,让我们直截了当.

:t (map.foldr)
(map.foldr) :: (a1 -> a -> a) -> [a] -> [[a1] -> a]
Run Code Online (Sandbox Code Playgroud)

什么是[[a1] - > a]?我真的想要理解这个构图,所以我这样做:

-- map.foldr

    map.foldr :: (a1 -> a -> a) -> [a] -> [[a1] -> a]

    map :: (a1 -> b1) -> [a1] -> [b1]
    (.) :: (y -> w) -> (x -> y) -> x -> w
    foldr :: (a -> b -> b) -> b -> [a] -> b

    y = (a1 -> b1)      w = ([a1] -> [b1]) …
Run Code Online (Sandbox Code Playgroud)

haskell map fold function-composition

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

如何在FirebaseListAdapter完成时收到通知?

我正在使用FirebaseListAdapter,我需要显示ProgressDialog,但我不知道如何知道它何时完成加载.

    public class TabFragment1 extends ListFragment {

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.tab_fragment_1, container, false);
            ListView eventosView = (ListView) rootView.findViewById(android.R.id.list);
            Firebase ref = new Firebase(//myappurl);
            Firebase usersRef = new Firebase(//myappurl/eventos/users);
            Singleton singletonUser = Singleton.getInstance();
            setUser(singletonUser);

    Firebase ref = new Firebase(//myappurl/eventos);
                    FirebaseListAdapter<Evento> mAdapter = new FirebaseListAdapter<Evento>(getActivity(), Evento.class, R.layout.event_row, ref) {
                        @Override
                        protected void populateView(View view, Evento evento) {
                            ((TextView)view.findViewById(R.id.eventTitle)).setText(evento.getNome());
                            ((TextView)view.findViewById(R.id.eventPlace)).setText(evento.getLocal());
                        }
                    };
                    setListAdapter(mAdapter);
                    return mAdapter;


            return rootView;
        }

private void setUser(Singleton singletonUser){
        singletonUser.getToken(); …
Run Code Online (Sandbox Code Playgroud)

android listview progressdialog firebase firebaseui

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