Questions Concepts
GitHub icon

Module Pattern

Module Pattern - language feature

< >
Example from Java, Pizza, Oracle Java, Deesel:
// Package = directory. Java classes can be grouped together in packages. A package name is the same as the directory (folder) name which contains the .java files. You declare packages when you define your Java program, and you name the packages you want to use from other libraries in an import statement. // The first statement, other than comments, in a Java source file, must be the package declaration. // Following the optional package declaration, you can have import statements, which allow you to specify classes from other packages that can be referenced without qualifying them with their package. // This source file must be in the illustration directory. package illustration; import java.awt.*; public class Drawing { // ... }
Example from C#:
// In C#, namespaces are the semi-equivalent of Java's packages. namespace com.test { class Test {} }
Example from Fortran:
module constants implicit none real, parameter :: pi = 3.1415926536 real, parameter :: e = 2.7182818285 contains subroutine show_consts() print*, "Pi = ", pi print*, "e = ", e end subroutine show_consts end module constants program module_example use constants implicit none real :: x, ePowerx, area, radius x = 2.0 radius = 7.0 ePowerx = e ** x area = pi * radius**2 call show_consts() print*, "e raised to the power of 2.0 = ", ePowerx print*, "Area of a circle with radius 7.0 = ", area end program module_exampl
Example from Julia:
module MyModule using Lib using BigLib: thing1, thing2 import export MyType, foo struct MyType x end bar(x) = 2x foo(a::MyType) = bar(a.x) + 1 show(io::IO, a::MyType) = print(io, "MyType $(a.x)") end
Example from OCaml:
(* In OCaml, every piece of code is wrapped into a module. *) (* *) let hello () = print_endline "Hello" (* *) Amodule.hello ()
Example from Racket:
(module nest racket (provide (for-syntax meta-eggs) (for-meta 1 meta-chicks) num-eggs) (define-for-syntax meta-eggs 2) (define-for-syntax meta-chicks 3) (define num-eggs 2))
Example from C3:
module my_module::submodule; ...
Example from Speedie:
module App function Path (|string|) // return the app's path here

Languages with Module Pattern include Java, C#, Fortran, Julia, OCaml, Racket, C3, Speedie, progsbase, Pizza, Oracle Java, Deesel

This question asks: Does the language have a concept of modules for organizing and packaging code?

Read more about Module Pattern on the web: 1.

HTML of this page generated by Features.ts

View source

- Build the next great programming language Search Add Language Features Creators Resources About Blog Acknowledgements Queries Stats Sponsor Traffic Traffic Today Day 305 Logout