@@ -1434,6 +1434,8 @@ bit_syntax() ->
1434
1434
% %% 9.19 Fun Expressions
1435
1435
% %% ===========================================================================
1436
1436
1437
+ % %% Funs without function names
1438
+
1437
1439
% fun - without linebreaks
1438
1440
f () ->
1439
1441
fun func /0 ,
@@ -1607,6 +1609,151 @@ tricky() ->
1607
1609
end ,
1608
1610
ok .
1609
1611
1612
+ % %% Funs with function names
1613
+
1614
+ % fun - without linebreaks
1615
+ f () ->
1616
+ fun Fun (A ) -> A ;
1617
+ Fun (B ) -> B end ,
1618
+ ok .
1619
+
1620
+ % fun - with some linebreaks
1621
+ f () ->
1622
+ fun Fun (A ) -> A
1623
+ end ,
1624
+ fun Fun (A ) -> A ;
1625
+ Fun (B ) -> B
1626
+ end ,
1627
+ ok .
1628
+
1629
+ % fun - with more linebreaks
1630
+ f () ->
1631
+ fun Fun (A ) ->
1632
+ A
1633
+ end ,
1634
+ fun Fun (A ) ->
1635
+ A ;
1636
+ Fun (B ) ->
1637
+ B
1638
+ end ,
1639
+ ok .
1640
+
1641
+ % fun - with more space
1642
+ f () ->
1643
+ fun Fun (A ) -> A ;
1644
+ Fun (B ) -> B
1645
+ end ,
1646
+ fun Fun (A ) ->
1647
+ A ;
1648
+ Fun (B ) ->
1649
+ B
1650
+ end ,
1651
+ ok .
1652
+
1653
+ % fun - with extra linebreaks
1654
+ f () ->
1655
+
1656
+ fun
1657
+ Fun (A ) ->
1658
+ A
1659
+ end ,
1660
+
1661
+ fun
1662
+ Fun (A ) ->
1663
+ A ;
1664
+ Fun (B ) ->
1665
+ B
1666
+ end ,
1667
+ ok .
1668
+
1669
+ % fun - without linebreaks + when
1670
+ f () ->
1671
+ fun Fun (A ) when A > 0 -> A end ,
1672
+ fun Fun (A ) when A > 0 -> A ; Fun (B ) when B > 0 -> B end ,
1673
+ ok .
1674
+
1675
+ % fun - with some linebreaks + when
1676
+ f () ->
1677
+ fun Fun (A ) when A > 0 -> A
1678
+ end ,
1679
+ fun Fun (A ) when A > 0 -> A ;
1680
+ Fun (B ) when B > 0 -> B
1681
+ end ,
1682
+ ok .
1683
+
1684
+ % fun - with more linebreaks + when
1685
+ f () ->
1686
+ fun Fun (A ) when A > 0 ->
1687
+ A
1688
+ end ,
1689
+ fun Fun (A ) when A > 0 ->
1690
+ A ;
1691
+ Fun (B ) when B > 0 ->
1692
+ B
1693
+ end ,
1694
+ ok .
1695
+
1696
+ % fun - with some linebreaks with less space + when
1697
+ f () ->
1698
+ fun Fun (A ) when A > 0 -> A
1699
+ end ,
1700
+ fun Fun (A ) when A > 0 -> A ;
1701
+ Fun (B ) when B > 0 -> B
1702
+ end ,
1703
+ ok .
1704
+
1705
+ % fun - with more linebreaks with less space + when
1706
+ f () ->
1707
+ fun Fun (A ) when A > 0 ->
1708
+ A
1709
+ end ,
1710
+ fun Fun (A ) when A > 0 ->
1711
+ A ;
1712
+ Fun (B ) when B > 0 ->
1713
+ B
1714
+ end ,
1715
+ ok .
1716
+
1717
+ % fun - with extra linebreaks + when
1718
+ f () ->
1719
+
1720
+ fun
1721
+ Fun (A ) when A > 0 ->
1722
+ A
1723
+ end ,
1724
+
1725
+ fun
1726
+ Fun (A ) when A > 0 ->
1727
+ A ;
1728
+ Fun (B ) when B > 0 ->
1729
+ B
1730
+ end ,
1731
+ ok .
1732
+
1733
+ % fun - linebreaks after 'when'
1734
+ f () ->
1735
+ fun Fun (A ) when
1736
+ A > 0 -> A
1737
+ end ,
1738
+ fun Fun (A ) when
1739
+ A > 0 -> A ;
1740
+ Fun (B ) when
1741
+ B > 0 -> B
1742
+ end ,
1743
+ ok .
1744
+
1745
+ tricky () ->
1746
+ $( ,
1747
+ fun % comment
1748
+ Fun (A ) ->
1749
+ fun i /0 ,
1750
+ fun % Fun(
1751
+ i /0 ;
1752
+ Fun (B ) ->
1753
+ ok
1754
+ end ,
1755
+ ok .
1756
+
1610
1757
% %% ===========================================================================
1611
1758
% %% 9.20 Catch and Throw
1612
1759
% %% ===========================================================================
@@ -2994,151 +3141,3 @@ eval(Fun, Arg) ->
2994
3141
end
2995
3142
end .
2996
3143
2997
- % %% ===========================================================================
2998
- % %% Funs with names
2999
- % %% ===========================================================================
3000
-
3001
- % %% http://www.erlang.org/eeps/eep-0037.html
3002
-
3003
- % fun - without linebreaks
3004
- f () ->
3005
- fun Fun (A ) -> A ;
3006
- Fun (B ) -> B end ,
3007
- ok .
3008
-
3009
- % fun - with some linebreaks
3010
- f () ->
3011
- fun Fun (A ) -> A
3012
- end ,
3013
- fun Fun (A ) -> A ;
3014
- Fun (B ) -> B
3015
- end ,
3016
- ok .
3017
-
3018
- % fun - with more linebreaks
3019
- f () ->
3020
- fun Fun (A ) ->
3021
- A
3022
- end ,
3023
- fun Fun (A ) ->
3024
- A ;
3025
- Fun (B ) ->
3026
- B
3027
- end ,
3028
- ok .
3029
-
3030
- % fun - with more space
3031
- f () ->
3032
- fun Fun (A ) -> A ;
3033
- Fun (B ) -> B
3034
- end ,
3035
- fun Fun (A ) ->
3036
- A ;
3037
- Fun (B ) ->
3038
- B
3039
- end ,
3040
- ok .
3041
-
3042
- % fun - with extra linebreaks
3043
- f () ->
3044
-
3045
- fun
3046
- Fun (A ) ->
3047
- A
3048
- end ,
3049
-
3050
- fun
3051
- Fun (A ) ->
3052
- A ;
3053
- Fun (B ) ->
3054
- B
3055
- end ,
3056
- ok .
3057
-
3058
- % fun - without linebreaks + when
3059
- f () ->
3060
- fun Fun (A ) when A > 0 -> A end ,
3061
- fun Fun (A ) when A > 0 -> A ; Fun (B ) when B > 0 -> B end ,
3062
- ok .
3063
-
3064
- % fun - with some linebreaks + when
3065
- f () ->
3066
- fun Fun (A ) when A > 0 -> A
3067
- end ,
3068
- fun Fun (A ) when A > 0 -> A ;
3069
- Fun (B ) when B > 0 -> B
3070
- end ,
3071
- ok .
3072
-
3073
- % fun - with more linebreaks + when
3074
- f () ->
3075
- fun Fun (A ) when A > 0 ->
3076
- A
3077
- end ,
3078
- fun Fun (A ) when A > 0 ->
3079
- A ;
3080
- Fun (B ) when B > 0 ->
3081
- B
3082
- end ,
3083
- ok .
3084
-
3085
- % fun - with some linebreaks with less space + when
3086
- f () ->
3087
- fun Fun (A ) when A > 0 -> A
3088
- end ,
3089
- fun Fun (A ) when A > 0 -> A ;
3090
- Fun (B ) when B > 0 -> B
3091
- end ,
3092
- ok .
3093
-
3094
- % fun - with more linebreaks with less space + when
3095
- f () ->
3096
- fun Fun (A ) when A > 0 ->
3097
- A
3098
- end ,
3099
- fun Fun (A ) when A > 0 ->
3100
- A ;
3101
- Fun (B ) when B > 0 ->
3102
- B
3103
- end ,
3104
- ok .
3105
-
3106
- % fun - with extra linebreaks + when
3107
- f () ->
3108
-
3109
- fun
3110
- Fun (A ) when A > 0 ->
3111
- A
3112
- end ,
3113
-
3114
- fun
3115
- Fun (A ) when A > 0 ->
3116
- A ;
3117
- Fun (B ) when B > 0 ->
3118
- B
3119
- end ,
3120
- ok .
3121
-
3122
- % fun - linebreaks after 'when'
3123
- f () ->
3124
- fun Fun (A ) when
3125
- A > 0 -> A
3126
- end ,
3127
- fun Fun (A ) when
3128
- A > 0 -> A ;
3129
- Fun (B ) when
3130
- B > 0 -> B
3131
- end ,
3132
- ok .
3133
-
3134
- tricky () ->
3135
- $( ,
3136
- fun % comment
3137
- Fun (A ) ->
3138
- fun i /0 ,
3139
- fun % Fun(
3140
- i /0 ;
3141
- Fun (B ) ->
3142
- ok
3143
- end ,
3144
- ok .
0 commit comments