所以,我真的在煎我的大脑,试着理解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只添加了一次,是不是?(可能不是,但我想知道如何/为什么!).
我很困惑(也许让所有的困惑,哈哈).谢谢!
那么,让我们谈谈这一点:
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)
这是为什么??谢谢!
(我是新手,所以如果这是一个太愚蠢的问题,我道歉,但我真的找不到解释)
所以,让我们直截了当.
: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) 我正在使用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)