{"id":26996315,"url":"https://github.com/jelhamm/100-projects-for-prolog","last_synced_at":"2026-01-18T18:02:27.825Z","repository":{"id":246690653,"uuid":"821860513","full_name":"jElhamm/100-Projects-for-Prolog","owner":"jElhamm","description":"\"The repository '100 Mini Projects for Prolog' includes small projects for learning and practicing Prolog.\"","archived":false,"fork":false,"pushed_at":"2024-07-19T18:08:08.000Z","size":6274,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T01:18:08.769Z","etag":null,"topics":["bfs-search","dfs-algorithm","dls-algorithm","graph","graph-path-finder","ids-algorithm","list-operation","list-operations","mathematical-programming","prolog","prolog-implementation","prolog-programming-language","prolog-rules","sorting-algorithms","sorting-algorithms-implemented","string-algorithms"],"latest_commit_sha":null,"homepage":"","language":"Prolog","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jElhamm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-29T16:40:11.000Z","updated_at":"2024-08-22T03:05:47.000Z","dependencies_parsed_at":"2024-06-29T18:24:21.360Z","dependency_job_id":"324bedcd-0fcd-4614-a231-b6f5624817e1","html_url":"https://github.com/jElhamm/100-Projects-for-Prolog","commit_stats":null,"previous_names":["jelhamm/100-mini-projects-for-prolog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jElhamm/100-Projects-for-Prolog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2F100-Projects-for-Prolog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2F100-Projects-for-Prolog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2F100-Projects-for-Prolog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2F100-Projects-for-Prolog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jElhamm","download_url":"https://codeload.github.com/jElhamm/100-Projects-for-Prolog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2F100-Projects-for-Prolog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28547004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T14:59:57.589Z","status":"ssl_error","status_checked_at":"2026-01-18T14:59:46.540Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bfs-search","dfs-algorithm","dls-algorithm","graph","graph-path-finder","ids-algorithm","list-operation","list-operations","mathematical-programming","prolog","prolog-implementation","prolog-programming-language","prolog-rules","sorting-algorithms","sorting-algorithms-implemented","string-algorithms"],"created_at":"2025-04-04T01:18:11.638Z","updated_at":"2026-01-18T18:02:27.764Z","avatar_url":"https://github.com/jElhamm.png","language":"Prolog","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 100 Project for Prolog\n\n   This repository is a comprehensive collection of diverse [Prolog](https://en.wikipedia.org/wiki/Prolog#:~:text=Prolog%20is%20a%20Turing%2Dcomplete,for%20intelligent%20knowledge%2Dprocessing%20applications.) programming challenges designed to enhance your understanding and proficiency in Prolog. Whether you are a beginner looking to learn the basics of Prolog or an experienced programmer aiming to refine your skills, this repository provides a wealth of problems and projects to explore.\n\n\n## Table of Contents\n\n**1. [Introduction](#introduction)**\n\n**2. [Installation](#installation)**\n\n**3. [Project Categories](#project-categories)**\n\n  - **[Math Problems](#Math-problems)**\n\n  - **[Graph Problems](#Graph-Problems)**\n\n  - **[List Operations](#list-operations)**\n\n  - **[Matrix Problems](#matrix-Problems)**\n\n  - **[String Operations](#String-Operations)**\n\n  - **[Graph Path Finder](#Graph-Path-Finder)**\n\n  - **[Sorting Algorithms](#Sorting-Algorithms)**\n\n  - **[Searching Algorithms](#statistics-Algorithms)**\n\n  - **[Statistics And Probability](#statistics-and-probability)**\n  \n**4. [Usage](#usage)**\n\n**5. [Contribution](#contribution)**\n\n**6. [License](#license)**\n\n\n## Introduction\n\n   This repository is designed for those interested in learning Prolog by working through practical examples.\n   Each project is self-contained and includes a clear description of the problem, the Prolog code to solve it, and instructions on how to run the code. Whether you are a beginner or an experienced developer, you will find valuable insights and challenges in these projects.\n\n## Installation\n\n   To get started with the projects in this repository, you will need to have Prolog installed on your machine.\n   \n   Follow the steps below to set up your environment:\n   \n   1. Install SWI-Prolog:\n\n   - Visit the [SWI-Prolog website](https://www.swi-prolog.org/Download.html) and download the installer for your operating system.\n   - Follow the installation instructions provided on the website.\n   \n\n   2. Clone this repository:\n   ```bash\n      * git clone https://github.com/jElhamm/100-Projects-for-Prolog\n\n      * cd 100-Projects-for-Prolog\n   ```\n\n# 📚 Project Categories\n\n## ➗ Math Problems \n\n   **1. [Calculating Power](Math%20Problems/Calculating%20Power)**\n\n   **2. [Calculating Factorial](Math%20Problems/Calculating%20Factorial)**\n\n   **3. [Checking Prime Numbers](Math%20Problems/Checking%20Prime%20Numbers)**\n\n   **4. [Find Factors of a Number N](Math%20Problems/Find%20Factors%20of%20a%20Number%20N)**\n\n   **5. [Converting Binary to Decimal](Math%20Problems/Converting%20Binary%20to%20Decimal)**\n\n   **6. [Converting Decimal to Binary](Math%20Problems/Converting%20Decimal%20to%20Binary)**\n\n   **7. [Calculating Fibonacci Numbers](Math%20Problems/Calculating%20Fibonacci%20Numbers)**\n\n   **8. [Generate Prime Numbers up to N](Math%20Problems/Generate%20Prime%20Numbers%20up%20to%20N)**\n\n   **9. [Calculate the Least Common Multiple (LCM)](Math%20Problems/Calculate%20the%20Least%20Common%20Multiple%20(LCM))**\n\n   **10. [Calculate the Greatest Common Divisor (GCD)](Math%20Problems/Calculate%20the%20Greatest%20Common%20Divisor%20(GCD))**\n\n## 🕸️ Graph Problems\n\n   **11. [Find and Count All Edges](Graph%20Problems/Find%20and%20Count%20All%20Edges)**\n\n   **12. [Find Neighbors of a Node](Graph%20Problems/Find%20Neighbors%20of%20a%20Node)**\n\n   **13. [Find and Count All Nodes](Graph%20Problems/Find%20and%20Count%20All%20Nodes)**\n\n   **14. [Checking Graph Homomorphism](Graph%20Problems/Checking%20Graph%20Homomorphism)**\n\n   **15. [Check if a Graph is Connected](Graph%20Problems/Check%20if%20a%20Graph%20is%20Connected)**\n\n   **16. [Finding Minimum Spanning Tree](Graph%20Problems/Finding%20Minimum%20Spanning%20Tree)**\n\n   **17. [Find All Paths Between Two Nodes](Graph%20Problems/Find%20All%20Paths%20Between%20Two%20Nodes)**\n\n   **18. [Convert a Directed Graph to an Undirected](Graph%20Problems/Convert%20a%20Directed%20Graph%20to%20an%20Undirected)**\n\n\n## 📋 List Operations\n\n   **19. [Reverse](List%20Operations/Reverse)**\n\n   **20. [Find Max](List%20Operations/Find%20Max)**\n\n   **21. [Find Min](List%20Operations/Find%20Min)**\n\n   **22. [Sum List](List%20Operations/Sum%20List)**\n\n   **23. [Is Sorted](List%20Operations/Is%20Sorted)**\n\n   **24. [List Length](List%20Operations/List%20Length)**\n\n   **25. [Add Element](List%20Operations/Add%20Element)**\n\n   **26. [Check Equality](List%20Operations/Check%20Equality)**\n\n   **27. [Append Two Lists](List%20Operations/Append%20Two%20Lists)**\n\n   **28. [Average Elements](List%20Operations/Average%20Elements)**\n\n   **29. [Check Membership](List%20Operations/Check%20Membership)**\n\n   **30. [Sublist Predicate](List%20Operations/Sublist%20Predicate)**\n\n   **31. [Remove Duplicates](List%20Operations/Remove%20Duplicates)**\n\n   **32. [Intersect Two Lists](List%20Operations/Intersect%20Two%20Lists)**\n\n   **33. [Convert List to Set](List%20Operations/Convert%20List%20to%20Set)**\n\n   **34. [Even Sum Calculator](List%20Operations/Even%20Sum%20Calculator)**\n\n   **35. [Split List Predicate](List%20Operations/Split%20List%20Predicate)**\n\n   **36. [Nth Element Retrieval](List%20Operations/Nth%20Element%20Retrieval)**\n\n   **37. [Rotate List to the Left](List%20Operations/Rotate%20List%20to%20the%20Left)**\n\n   **38. [Rotate List to the Right](List%20Operations/Rotate%20List%20to%20the%20Right)**\n\n   **39. [Find Second Largest Element](List%20Operations/Find%20Second%20Largest%20Element)**\n\n   **40. [Delete Occurrences Elements](List%20Operations/Delete%20Occurrences%20Elements)**\n\n   **41. [Find Second Smallest Element](List%20Operations/Find%20Second%20Smallest%20Element)**\n\n   **42. [Longest Sublist with No Duplicates](List%20Operations/Longest%20Sublist%20with%20No%20Duplicates)**\n\n\n## 🧮 Matrix Problems \n\n   **43. [Matrix Trace](Matrix%20Problems/Matrix%20Trace)**\n\n   **44. [Identity Matrix](Matrix%20Problems/Identity%20Matrix)**\n\n   **45. [Matrix Addition](Matrix%20Problems/Matrix%20Addition)**\n\n   **46. [Transpose Matrix](Matrix%20Problems/Transpose%20Matrix)**\n\n   **47. [Matrix Inversion](Matrix%20Problems/Matrix%20Inversion)**\n\n   **48. [Matrix Dimensions](Matrix%20Problems/Matrix%20Dimensions)**\n\n   **49. [Sum of Odd Elements](Matrix%20Problems/Sum%20of%20Odd%20Elements)**\n\n   **50. [Check Square Matrix](Matrix%20Problems/Check%20Square%20Matrix)**\n\n   **51. [Calculating The Trace](Matrix%20Problems/Calculating%20The%20Trace)**\n\n   **52. [Finding Even Elements](Matrix%20Problems/Finding%20Even%20Elements)**\n\n   **53. [Matrix Multiplication](Matrix%20Problems/Matrix%20Multiplication)**\n\n   **54. [Check Symmetric Matrix](Matrix%20Problems/Check%20Symmetric%20Matrix)**\n\n   **55. [Largest Element in Matrix](Matrix%20Problems/Largest%20Element%20in%20Matrix)**\n\n   **56. [List to Matrix Conversion](Matrix%20Problems/List%20to%20Matrix%20Conversion)**\n\n   **57. [Matrix to List Conversion](Matrix%20Problems/Matrix%20to%20List%20Conversion)**\n\n   **58. [Smallest Element in Matrix](Matrix%20Problems/Smallest%20Element%20in%20Matrix)**\n\n   **59. [Sum of Odd Numbers in Each Row](Matrix%20Problems/Sum%20of%20Odd%20Numbers%20in%20Each%20Row)**\n\n   **60. [Sum of Even Numbers in Each Column](Matrix%20Problems/Sum%20of%20Even%20Numbers%20in%20Each%20Column)**\n\n\n## 🌐 String Operations\n\n   **61. [Reversing String](String%20Operations/Reversing%20String)**\n\n   **62. [Replacing a Character](String%20Operations/Replacing%20a%20Character)**\n\n   **63. [Find the Largest Word](String%20Operations/Find%20the%20Largest%20Word)**\n\n   **64. [Find the Smallest Word](String%20Operations/Find%20the%20Smallest%20Word)**\n\n   **65. [Convert String to List](String%20Operations/Convert%20String%20to%20List)**\n\n   **66. [Finding All Subsequences](String%20Operations/Finding%20All%20Subsequences)**\n\n   **67. [Find the Last Occurrence](String%20Operations/Find%20the%20Last%20Occurrence)**\n\n   **68. [Concatenating Two Strings](String%20Operations/Concatenating%20Two%20Strings)**\n\n   **69. [Find the First Occurrence](String%20Operations/Find%20the%20First%20Occurrence)**\n\n   **70. [Extract Numbers from String](String%20Operations/Extract%20Numbers%20from%20String)**\n\n   **71. [Check Two Strings are Equal](String%20Operations/Check%20Two%20Strings%20are%20Equal)**\n\n   **72. [Counting the Number of Words](String%20Operations/Counting%20the%20Number%20of%20Words)**\n\n   **73. [Convert a List of Characters](String%20Operations/Convert%20a%20List%20of%20Characters)**\n\n   **74. [Removing Duplicate Characters](String%20Operations/Removing%20Duplicate%20Characters)**\n\n   **75. [Checking String is Palindrome](String%20Operations/Checking%20String%20is%20Palindrome)**\n\n   **76. [Finding the Length of a String](String%20Operations/Finding%20the%20Length%20of%20a%20String)**\n\n   **77. [Counting Characters in a String](String%20Operations/Counting%20Characters%20in%20a%20String)**\n\n   **78. [Converting Lowercase Letters to Uppercase](String%20Operations/Converting%20Lowercase%20Letters%20to%20Uppercase)**\n\n   **79. [Converting Uppercase Letters to Lowercase](String%20Operations/Converting%20Uppercase%20Letters%20to%20Lowercase)**\n\n\n## ✏️ Graph Path Finder\n\n   **80. [GraphPathFinder](#Graph%20Path%20Finder)**\n\n## 🔄 Sorting Algorithms\n\n   **81. [Shell Sort](Sorting%20Algorithms/Shell%20Sort)**\n\n   **82. [Quick Sort](Sorting%20Algorithms/Quick%20Sort)**\n\n   **83. [Merge Sort](Sorting%20Algorithms/Merge%20Sort)**\n\n   **84. [Bubble Sort](Sorting%20Algorithms/Bubble%20Sort)**\n\n   **85. [Insertion Sort](Sorting%20Algorithms/Insertion%20Sort)**\n\n   **86. [Selection Sort](Sorting%20Algorithms/Selection%20Sort)**\n\n\n## 🔍 Searching Algorithms\n\n   **87. [Binary Search](Searching%20Algorithms/Binary%20Search)**\n\n   **88. [Linear Search](Searching%20Algorithms/Linear%20Search)**\n\n   **89. [Detect Cycles in a Directed](Searching%20Algorithms/Detect%20Cycles%20in%20a%20Directed)**\n\n   **90. [Find the K-th Smallest Element](Searching%20Algorithms/Find%20the%20K-th%20Smallest%20Element)**\n\n   **91. [Find the Last Duplicate Element](Searching%20Algorithms/Find%20the%20Last%20Duplicate%20Element)**\n\n   **92. [Find the First Duplicate Element](Searching%20Algorithms/Find%20the%20First%20Duplicate%20Element)**\n\n\n## 📈 Statistics And Probability \n\n   **93. [Calculate Mean](Statistics%20And%20Probability/Calculate%20Mean)**\n\n   **94. [Calculate Mode](Statistics%20And%20Probability/Calculate%20Mode)**\n\n   **95. [Calculate Range](Statistics%20And%20Probability/Calculate%20Range)**\n\n   **96. [Calculate Median](Statistics%20And%20Probability/Calculate%20Median)**\n\n   **97. [Calculate Variance](Statistics%20And%20Probability/Calculate%20Variance)**\n\n   **98. [Dice Roll Simulation](Statistics%20And%20Probability/Dice%20Roll%20Simulation)**\n\n   **99. [Coin Toss Simulation](Statistics%20And%20Probability/Coin%20Toss%20Simulation)**\n\n   **100. [Calculate Standard Deviation](Statistics%20And%20Probability/Calculate%20Standard%20Deviation)**\n\n\n\n## Usage\n\n   Each project is contained within its respective folder. To run a project, follow these steps:\n\n   1. Navigate to the project folder:\n\n   ```bash\n   cd Project-Name\n   ```\n\n   - For example, to navigate to the project for calculating the mean:\n   ```bash\n   cd Statistics_and_Probability/Calculate_Mean\n   ```\n\n   2. Open the Prolog file in SWI-Prolog:\n\n   ```bash\n   swipl project_name.pl\n   ```\n\n   - For example:\n\n   ```bash\n   swipl mean.pl\n   ```\n\n   3. Follow the instructions in the project file to execute the code.\n\n## Contributing\n\n   - Please fork the repository, make your changes, and submit a pull request.\n   - Ensure your code adheres to the existing style and includes relevant tests.\n   - For detailed guidelines, check the project's issues or discussions.\n\n## License\n\n   This repository is licensed under the MIT License.\n\n   See the [LICENSE](./LICENSE) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjelhamm%2F100-projects-for-prolog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjelhamm%2F100-projects-for-prolog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjelhamm%2F100-projects-for-prolog/lists"}