GitHub Depo:https://github.com/wavebitscientific/functional-fortran
Fortran (FORTRAN), özellikle sayısal hesaplama ve bilimsel hesaplama için uygun olan genel amaçlı, yordamsal, zorunlu programlama dilidir.
1954'de IBM tarafından üretilen IBM 704 için ilk sürümü John Backus ve ekibi tarafından geliştirilmiştir. Backus ve ekibi Kasım 1954'de "The IBM Mathematical FORmula TRANslating System: Fortran" isimli raporu yayınlamışlardır.
logical,dimension(:),allocatable :: tests
logical :: test_failed
integer :: n,norder,ntests
integer,parameter :: stdout = 6
n = 1
ntests = 10
call initialize_tests(tests,ntests)
tests(n) = assert(size(empty(1_int8)) == 0,'empty, int8')
n = n + 1
tests(n) = assert(size(empty(1_int16)) == 0,'empty, int16')
n = n + 1
tests(n) = assert(size(empty(1_int32)) == 0,'empty, int32')
n = n + 1
tests(n) = assert(size(empty(1_int64)) == 0,'empty, int64')
n = n + 1
tests(n) = assert(size(empty(1._real32)) == 0,'empty, real32')
n = n + 1
tests(n) = assert(size(empty(1._real64)) == 0,'empty, real64')
n = n + 1
tests(n) = assert(size(empty(1._real128)) == 0,'empty, real128')
n = n + 1
tests(n) = assert(size(empty(cmplx(1._real32,0._real32))) == 0,'empty, complex32')
n = n + 1
tests(n) = assert(size(empty(cmplx(1._real64,0._real64))) == 0,'empty, complex64')
n = n + 1
tests(n) = assert(size(empty(cmplx(1._real128,0._real128))) == 0,'empty, complex128')
n = n + 1
test_failed = .false.
call report_tests(tests,test_failed)
if(test_failed)stop 1
son programı test_empty
public :: operator(.sort.)
public :: operator(.tail.)
public :: operator(.union.)
module procedure :: arange_i1,arange_i2,arange_i4,arange_i8
module procedure :: arange_r4,arange_r8,arange_r16
module procedure :: arange_c4,arange_c8,arange_c16
uç arayüz aralığı
module procedure :: complement_i1,complement_i2,complement_i4,complement_i8
module procedure :: complement_r4,complement_r8,complement_r16
bitiş arayüzü tamamlayıcı
module procedure :: complement_i1,complement_i2,complement_i4,complement_i8
module procedure :: complement_r4,complement_r8,complement_r16
bitiş arabirimi
module procedure :: filter_i1,filter_i2,filter_i4,filter_i8
module procedure :: filter_r4,filter_r8,filter_r16
module procedure :: filter_c4,filter_c8,filter_c16
endinterface filter
module procedure :: foldl_i1,foldl_i2,foldl_i4,foldl_i8
module procedure :: foldl_r4,foldl_r8,foldl_r16
uç ara birim katlama
module procedure :: foldr_i1,foldr_i2,foldr_i4,foldr_i8
module procedure :: foldr_r4,foldr_r8,foldr_r16
uç ara birim foldr
module procedure :: foldt_i1,foldt_i2,foldt_i4,foldt_i8
module procedure :: foldt_r4,foldt_r8,foldt_r16
son ara birim foldt
module procedure :: head_i1,head_i2,head_i4,head_i8
module procedure :: head_r4,head_r8,head_r16
module procedure :: head_c4,head_c8,head_c16
bitiş ara birimi
module procedure :: head_i1,head_i2,head_i4,head_i8
module procedure :: head_r4,head_r8,head_r16
module procedure :: head_c4,head_c8,head_c16
son uç ara birim
module procedure :: init_i1,init_i2,init_i4,init_i8
module procedure :: init_r4,init_r8,init_r16
module procedure :: init_c4,init_c8,init_c16
uç ara birim girişi
module procedure :: init_i1,init_i2,init_i4,init_i8
module procedure :: init_r4,init_r8,init_r16
module procedure :: init_c4,init_c8,init_c16
uç arayüz kavşağı
module procedure :: insert_i1,insert_i2,insert_i4,insert_i8
module procedure :: insert_r4,insert_r8,insert_r16
son arayüz insert
module procedure :: intersection_i1,intersection_i2,intersection_i4,intersection_i8
module procedure :: intersection_r4,intersection_r8,intersection_r16
bitiş arabirimi
module procedure :: intersection_i1,intersection_i2,intersection_i4,intersection_i8
module procedure :: intersection_r4,intersection_r8,intersection_r16
son ara yüz
module procedure :: iterfold_i1,iterfold_i2,iterfold_i4,iterfold_i8
module procedure :: iterfold_r4,iterfold_r8,iterfold_r16
son arayüzü tekrar et
module procedure :: last_i1,last_i2,last_i4,last_i8
module procedure :: last_r4,last_r8,last_r16
module procedure :: last_c4,last_c8,last_c16
son arayüz son
module procedure :: last_i1,last_i2,last_i4,last_i8
module procedure :: last_r4,last_r8,last_r16
module procedure :: last_c4,last_c8,last_c16
bitiş ara birimi
module procedure :: limit_i1,limit_i2,limit_i4,limit_i8
module procedure :: limit_r4,limit_r8,limit_r16
uç ara birim sınırı
module procedure :: map_i1,map_i2,map_i4,map_i8
module procedure :: map_r4,map_r8,map_r16
module procedure :: map_c4,map_c8,map_c16
uç arabirim haritası