Mixins ====== ```Example from 1 languages: Python # https://easyaspython.com/mixins-for-fun-and-profit-cb9962760556 class EssentialFunctioner(LoggerMixin, object): ``` ```Example from 1 languages: Ruby module A def a1 end def a2 end end module B def b1 end def b2 end end class Sample include A include B def s1 end end samp = Sample.new samp.a1 samp.a2 samp.b1 ``` ```Example from 1 languages: TypeScript // https://www.typescriptlang.org/docs/handbook/mixins.html class SmartObject implements Disposable, Activatable { } // Note: still need to do some runtime ops to make that work. ``` ```Example from 1 languages: Julia # Including the same code in different modules provides mixin-like behavior. module Normal include("mycode.jl") end module Testing include("safe_operators.jl") include("mycode.jl") end ``` ```Example from 1 languages: Racket (mixin (interface-expr ...) (interface-expr ...) class-clause ...) ``` ```Example from 1 languages: Sass @mixin reset-list margin: 0 padding: 0 list-style: none @mixin horizontal-list @include reset-list li display: inline-block margin: left: -2px right: 2em nav ul @include horizontal-list ``` ```Example from 1 languages: SCSS @mixin reset-list { margin: 0; padding: 0; list-style: none; } @mixin horizontal-list { @include reset-list; li { display: inline-block; margin: { left: -2px; right: 2em; } } } nav ul { @include horizontal-list; } ``` ```Example from 1 languages: Xtext grammar org.example.domainmodel.Domainmodel with org.eclipse.xtext.common.Terminals ``` * Languages *with* Mixins include Python, Ruby, TypeScript, Julia, Racket, Sass, SCSS, Xtext * Languages *without* Mixins include CSS * View all concepts with or missing a *hasMixins* measurement http://pldb.info/../lists/explorer.html#columns=rank~id~appeared~tags~creators~hasMixins&searchBuilder=%7B%22criteria%22%3A%5B%7B%22condition%22%3A%22null%22%2C%22data%22%3A%22hasMixins%22%2C%22origData%22%3A%22hasMixins%22%2C%22type%22%3A%22num%22%2C%22value%22%3A%5B%5D%7D%5D%2C%22logic%22%3A%22AND%22%7D missing http://pldb.info/../lists/explorer.html#columns=rank~id~appeared~tags~creators~hasMixins&searchBuilder=%7B%22criteria%22%3A%5B%7B%22condition%22%3A%22!null%22%2C%22data%22%3A%22hasMixins%22%2C%22origData%22%3A%22hasMixins%22%2C%22type%22%3A%22num%22%2C%22value%22%3A%5B%5D%7D%5D%2C%22logic%22%3A%22AND%22%7D with * Read more about Mixins on the web: 1. https://en.wikipedia.org/wiki/Mixin 1. Built with Scroll v178.2.3