# Differentiable programming for gradient-based machine learning

**URL:** <https://forums.swift.org/t/differentiable-programming-for-gradient-based-machine-learning/42147>\
**Category:** Pitches\
**Tags:** numerics, autodiff, machine-learning\
**Created:** [November 19, 2020, 6:15pm UTC](https://forums.swift.org/t/differentiable-programming-for-gradient-based-machine-learning/42147 "2020-11-19T18:15:16Z")\
**Posts on this page:** 1\
**Showing post:** 92

<div class="post-metadata">

**Author:** ![dan-zheng](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/dan-zheng/32/2534_2.png) [@dan-zheng](https://forums.swift.org/u/dan-zheng)\
**Post date:** [January 9, 2021, 8:11am UTC](https://forums.swift.org/t/differentiable-programming-for-gradient-based-machine-learning/42147/92 "2021-01-09T08:11:34Z")

</div>

> [@rxwei](#):
>
> It seems to me that the only reason such protocols exist is because type alias declarations don't support where clauses. I don't believe that we should introduce an additional protocol for this purpose.

Yep, adding an extra protocol is certainly not as ideal.

About typealiases with generic requirements: [check out this thread](https://forums.swift.org/t/generic-typealiases-with-additional-constraints/36204/14). Seems like the feature could be implemented with a moderate amount of compiler hacking.

---

_[View the full topic](https://forums.swift.org/t/differentiable-programming-for-gradient-based-machine-learning/42147)._
