I've been playing around with PureScript on Android via React Native.
Here's what a TodoMVC-style app looks like:
Image may be NSFW.
Clik here to view.
And here's what the guts of the code look like:
render::forallpropseff.RenderpropsAppStateeffrenderctx=do(AppStatestate)<-readStatectxreturn$view[(style"container")][text[style"title"]"todos",view[style"newTodoContainer"][textInput[style"newTodo",P.valuestate.newTodo,P.placeholder"What needs to be done?",N.onChangeText\newTodo->transformStatectx(updateNewTodonewTodo),N.onSubmitEditing\_->transformStatectxaddTodo]],listView[style"todoList",N.renderRow$todoRowctx,N.renderSeparatortodoSeparator,N.renderHeader$view[style"separator"][],N.dataSourcestate.dataSource],view[style"bottomBar"][view[style"filters"][filterButtonctxstate.filterAll,filterButtonctxstate.filterActive,filterButtonctxstate.filterCompleted],text[style"clearCompleted",N.onPress\_->transformStatectxclearCompleted]"Clear completed"]]main=dolog"Running app"registerComponent"PureScriptSampleApp"componentwherecomponent=createClass$specinitialStaterenderdataSource=listViewDataSourceinitialTodosinitialState=updateDataSource$AppState{nextId:18,newTodo:"",todos:initialTodos,dataSource:dataSource,filter:All}
Check out the example source code or the React Native wrapper code.
This wrapper code builds on Phil Freeman's purescript-react low-level wrapper for React, adding support for various elements used in Android. It is a work in progress. Functional afficionados will raise their eyebrows. Android gurus will throw their hands up in disgust. But it is PureScript. It is Android. And it is awesome.