Trends in Functional Programming Volume 3 (Book)

This book brings together leading researchers and practitioners in the field of functional programming. The work presented here covers many aspects of the field, including:

  • language design 
  • proof and transformation
  • semantics and models
  • implementation
  • type systems
  • parallelism and distribution
  • performance modelling and profiling
  • programming methodologies

 

Edition

1     Haskell: Language for Business Systems               1

       Dan Russell, Dominic Steinitz and Chris Reade

       1.1     Introduction               1

       1.2     Background and Related Work               2

       1.3     LDAP               3

       1.4     The LDAP Client               5

       1.5     Using the LDAP API               9

       1.6     Conclusions and Further Work               11

 

2     Infinite Pretty-printing in eXene               13

       Allen Stoughton

       2.1     Pretty-printing with Elision               13

       2.2     Infinite Pretty-printing in eXene               15

       2.3     Flexible Text Values               15

       2.4     Pretty-printing Trees               16 

       2.5     The eXene Flexible Text Widget               20

       2.6     Pretty-Printing Examples               21

       2.7     Conclusion

 

3     Extending Higher-Order Deforestation: Transforming Programs to

       Eliminate Even More Trees               25

       Geoffrey Hamilton

       3.1     Introduction               25

       3.2     Language               27

       3.3     Extended Higher-Order Treeless Form               28

       3.4     The Extended Higher-Order Deforestation Algorithm               32

       3.5     The Extended Higher-Order Deforestation Theorem               34

       3.6     Conclusion               35

 

4     BSP in a Lazy Functional Context               37

       Quentin Miller

       4.1     Introduction               37

       4.2     BSP Computation               38

       4.3     A Vector Calculus               39

       4.4     The Structure of BSP-Haskell               40

       4.5     Broadcast Functions               41

       4.6     Implementations               42

       4.7     Cost Predictions and Measurements               46

       4.8     Summary and Further Research               47

       

5     Deriving Non-Hierarchical Process Topologies               51

       Ricardo Peña, Fernando Rubio, Clara Segura

       5.1     Introduction               51 

       5.2     Eden               52

       5.3     Methodology to Derive Non-Hierarchical Topologies               54

       5.4     Examples of Non-Hierarchical Topologies               56

       5.5     Conclusion               61

 

6     Load Balancing in a Parallel Graph Reducer               63

       Hans-Wolfgang Loidl

       6.1     Introduction               63

       6.2     GUM: A Parallel Graph Reducer               64

       6.3     Accessing the Load Distributer in GUM               66

       6.4     Related Work               72

       6.5     Conclusions               73

 

7     Paging in a Distributed Virtual Memory               75

       Marco T. Morazán, Douglas R. Troeger, Myles Nash

       7.1     Introduction               75

       7.2     Related Work               76

       7.3     The MT System               78

       7.4     Virtual Memory Performance of the MT Heap               81

       7.5     Explaining the Competitiveness of FIFO               83

       7.6     Concluding Remarks               84

 

8     How to Repair Type Errors Automatically               87

       Bruce McAdam

       8.1     Introduction- Error Messages               87

       8.2     The Theory Behind this System               89

       8.3     Implementing the Theory               90

       8.4     Performance and Testing               95

       8.5     Conclusions               97

 

9     The Dual of Substitution is Redecoration               99

       Tarmo Uustalu, Varmo Vene

       9.1     Introduction               99

       9.2     Monads               101

       9.3     Comonads               101

       9.4     Monads of Trees and Cotrees               102

       9.5     Comonads of (Co)trees               105

       9.6     Conclusion and Future Work               109

 

10   Function Types in Complete Type Inference               111

       Manfred Widera, Christoph Beierle

       10.1   Introduction to Complete Type Checking               111

       10.2   The Type Language               115

       10.3   The Inappropriateness of Function Types               115

       10.4   The New Function Type Constructor               116

       10.5   Conclusion               121   

Related Titles