Changes between Version 6 and Version 7 of BlockObjects
- Timestamp:
- 08/12/11 06:26:14 (22 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
BlockObjects
v6 v7 3 3 Apple recently [http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1370.pdf proposed] the inclusion of lambda abstractions (closures) into C/C++/Objective-C and facilitated an implementation in the `clang` compiler framework. They called this language extension ''blocks'' (or ''block objects''). It is widely used in the APIs of OS X 10.6 (Snow Leopard) and 10.7 (Lion). This page is about extending the Haskell 2010 FFI to directly support blocks — i.e., to enable Haskell functions to be marshalled as blocks to C and to enable C blocks to be marshalled as Haskell functions to Haskell land. This extension will be enabled by the language option `BlockObjects`. 4 4 5 == Example: calling a higher-order C function==5 == Example: passing a Haskell functions as an argument == 6 6 7 7 As an example, consider the library function [http://developer.apple.com/library/mac/#documentation/darwin/reference/manpages/man3/qsort_b.3.html qsort_b]: … … 39 39 }}} 40 40 41 == Example: returning a C block == 42 41 43 == Background == 42 44
