Git Product home page Git Product logo

Comments (6)

jpfairbanks avatar jpfairbanks commented on August 18, 2024 1

I know this issue is related to general refactoring and improvement of the metaprogramming powering the GATExpr stuff. This package which implements ML/Haskell style patternmatching as julia macros might make things easier. https://github.com/thautwarm/MLStyle.jl#generalized-algebraic-data-types

I know adding more dependencies isn't always a good thing, but this has been around for over a year and everythin @thautwarm does is usually awesome. Just putting it out there as something that could help. Then we could implement GATs out of GADTS so we can can have algebraic data while we have algebraic theories.

from catlab.jl.

thautwarm avatar thautwarm commented on August 18, 2024 1

Glad to know this. I know some about universal algebras but not familiar with categories. When you want to start refactoring this, feel free to ask me to work together(since Feb 1, I will have some bandwidth).

P.S: MLStyle can be developing time only dependencies, so don't worry about the dependency issues, if you can get help from mine. However, the generated code now is actually unreadable because currently there's no way to dump Julia ASTs to restore-able and readable source code.

from catlab.jl.

thautwarm avatar thautwarm commented on August 18, 2024

Hi, thank you for mentioning me here. I'm very interested in your works and, I checked your documentation, it seems that @signature and @instance are very close to some notions such as implicit first class modules or type classes.

I guess this repo, my type class implementation in Julia, might be helpful to your works.

Further collaboration is always welcome.

from catlab.jl.

jpfairbanks avatar jpfairbanks commented on August 18, 2024

This example seems particularly relevant https://thautwarm.github.io/CanonicalTraits.jl/stable/#Use-Case:-Modeling-Algebraic-Structures-1

from catlab.jl.

epatters avatar epatters commented on August 18, 2024

@jpfairbanks, thanks for noticing this connection.

@thautwarm, your package looks very nice! There is definitely overlap here, which is not surprising since Catlab's signatures/instances was inspired by a similar feature in the now defunct Cateno, which was in turn inspired by Haskell type classes. When I have the bandwidth to start addressing the issue, I'll reach out to see what we can do together.

from catlab.jl.

epatters avatar epatters commented on August 18, 2024

BTW, from my perspective, universal algebra has been swallowed by category theory. You can do universal algebra categorically, using Lawvere theories, but category theory has the tools to generalize and mutate universal algebra in all sorts of directions that are not obvious within the framework of traditional universal algebra.

from catlab.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.