Questions tagged [clojure]
Clojure is a Lisp dialect for the Java Virtual Machine. Its main features include a software transactional memory system for coherent updates to data structures, transparent access to Java libraries, a dynamic REPL development environment, runtime polymorphism, and built-in concurrent programming constructs.
309 questions
1
vote
0
answers
41
views
Pure and impure Implementations of CSV parser in Clojure
There are two versions of the CSV parser. The latter seems to be more performant than the former, although the former's code is easier to read.
Variant 1, which parses a string:
...
6
votes
1
answer
176
views
Database Migrations
I'm starting to learn Clojure, and would like feedback on some code I wrote to manage database migrations. Any recommendations to make it more robust, efficient, idiomatic, elegant, etc... are welcome!...
3
votes
0
answers
82
views
Advice on decomplecting and decoupling my tic tac toe implementation
I am hoping to find out what you think about my implementation of tic-tac-toe.
It is complete and working as expected with many tests, but the logic in the main module where I have the play-game main ...
2
votes
0
answers
68
views
Tic Tac Toe CLI in Clojure
I wrote a command line tic tac toe game in Clojure. I've broken this post into three sections: Feedback Requests, Gameplay, and Code
Feedback Requests
I'm looking for feedback on:
How "idiomatic&...
2
votes
0
answers
115
views
Why does my Clojure implementation of Conway's Game of Life run so much slower than my Java implementation?
I'm trying to learn Clojure coming from a Java background. I have written a simple implementation of Conway's game of life in both Clojure and Java, trying to keep the overall structure of the code as ...
2
votes
1
answer
79
views
A better way to parse text input in Clojure
I've been trying Advent of Code challenges to learn Clojure. I've successfully completed Day 2, but I feel like my solution is very clumsy, especially the functions for parsing text input.
...
0
votes
1
answer
101
views
Naïve Prime Factorization in Clojure Pt. 2
After my last review request, I decided to try and make a "tree" visualization, and thought that I could benefit from making find-prime-factors lazily produce prime ...
1
vote
1
answer
208
views
Prime factors kata solution in Clojure
I'm new to Clojure but I already know about functions and lists, so I decided to implement Prime Factors Kata solution. For any natural number the function should return a list of all its prime ...
1
vote
2
answers
151
views
Temperature Scale Converter in Clojure
Problem statement:
Write a program that converts all given temperatures from a given input temperature scale to a given output temperature scale. The temperature scales to be supported are Kelvin, ...
4
votes
1
answer
179
views
My implementation of Clojure's assoc-in
This is my implementation of Clojure's assoc-in function. I am looking for tips on making it more idiomatic and in general, better.
...
1
vote
2
answers
225
views
Verify Armstrong Number in Clojure
Background
I am doing an exercise in clojure to make a function that can determine if a number is an Armstrong Number or not.
The solution I came up with us a bit more complicated than it would be if ...
0
votes
1
answer
66
views
Reduce run time in Clojure
I have a task which runs sequentially. If I have hundreds of thousands of tags, it is very time consuming. Can this be modified to run the task in parallel? Works fine upto 100 tags
...
1
vote
1
answer
68
views
Client <> Query <> Subquery Bookkeeping
Context
I am making a system, where different clients issue queries
A query is resolved by issuing a set of subqueries
I have an invalidation-worker, which gets notified when subqueries go stale
...
2
votes
1
answer
208
views
Clean up improperly formatted phone numbers
This is a problem from Exercism here, the goal is to clean up badly formatted phone numbers. The rules are:
If the phone number is less than 10 digits assume that it is a bad number
If the phone ...
1
vote
1
answer
143
views
Get city weather and notify an endpoint
I'd like some help to improve this cli program. It queries a city's weather and pushes a weather report.
It takes two arguments: the city to query and the apikey for OpenWeatherMap. For example ...
1
vote
2
answers
261
views
Clojure Prime Numbers from 1 to 1000
I am a beginner to Clojure and I made a little script that prints out every prime number from 1 to 1000. Let me know if there are any improvements that I can make:
...
4
votes
2
answers
169
views
Extract indices of visible nodes in a tree where only some nodes are expanded
A program that I work on constantly updates and modifies program state containing an arbitrarily deep and wide tree. The data looks something like this.
...
5
votes
3
answers
414
views
Haversine Formula in Clojure
I implemented the Haversine formula to calculate the distance between two (latitude, longitude) coordinates.
I was wondering if it looks natural to Clojure programmers. What could be improved?
...
2
votes
1
answer
108
views
A Clojure program to classify files based on their filename
My first ever lines of Clojure and while the script seems to work as expected, I'm sure it's far from idiomatic Clojure. Thank you for any suggestions.
...
4
votes
1
answer
238
views
Generating two .csv files from named parameters
I wrote Clojure code which takes named params and has to generate 2 .csv files as output.
Please review it.
...
3
votes
1
answer
235
views
Game of Life in Clojure
I've implemented a Game of Life in Clojure and would like to understand what I can do better, especially in terms of idiomatic Clojure (without losing readability/maintainability) of the current ...
12
votes
0
answers
471
views
Idiomatic way to implement `tail -f` in clojure
Disclaimer: This is just an educational task to learn how to program in Clojure and switch brain to immutable state-way of developing (the provided snipped has some unused variables which I didn't ...
15
votes
1
answer
276
views
Tracking the bounding box of a map
Context
I have a bunch of data points that look roughly like this:
...
1
vote
1
answer
96
views
Factorise numbers
I've started learning Clojure a few days ago and I wrote this code that factorises numbers. How do I make it better? Is there any way to avoid doing it with a loop? Is that how I am supposed to code ...
5
votes
1
answer
298
views
Hackerrank: Breaking the records
I'm learning Clojure and am a rank n00b at it, trying to learn from books and online tutorials (but I'm sometimes concerned that I am picking up bad habits or at least not all the good habits). For ...
3
votes
0
answers
93
views
Brainfuck NASM compiler in Clojure
I've made a simple brainfuck compiler, I feel like my code is unreadable and messy, how can I improve it?
src/core.clj
...
5
votes
2
answers
268
views
Implementing parser combinators in a functional manner
I am just starting on my journey of learning clojure (I have just read to the end of chapter 3 in clojure for the brave and true). So for practice, I wrote some parser combinator functions. I am quite ...
7
votes
2
answers
503
views
Water pouring challenge
I'm trying to write code to solve water pouring problem in Clojure. The following code is strongly influenced by Martin Odersky's solution lectured in his coursera course, Functional Programming ...
2
votes
1
answer
97
views
naive bayes sentiment analysis classifier in clojure
attaching my try on implementing simple naive-bayes classifier for sentiment analysis as part of learning clojure and using functional programming on ML algorithms.
I tried to invest more time in ...
1
vote
1
answer
118
views
Check balanced brackets
Yes, I know we have a lot of these.
I'm new to Clojure, but not to lisps. After the recent (javascript?) parentheses-balancing Q, I decided to do an implementation in Clojure for practice with the ...
4
votes
1
answer
384
views
Calculating Pi in Clojure
Obviously there are better ways of obtaining Pi, but for educational purposes, how is the code below?
...
2
votes
1
answer
284
views
Filtering vector of maps based on a blacklist
Given a vector of maps:
(def my-list
[{:a 1 :b 2 :c 3}
{:a 1 :b 5 :c 6}
{:a 7 :b 8 :c 12}
{:a 10 :b 11 :c 12}])
and a blacklist:
...
3
votes
1
answer
461
views
Constructing a packet header
I am currently working on writing a library for use with LIFX light bulbs over their UDP API. I have written the code for creating the packet headers, but I'm unsure whether it is the most idiomatic ...
6
votes
1
answer
291
views
Clojure depth first search maze problem from Classic CS Problems in Python Book
I am an experienced self-taught professional Python programmer working my way through the book Classic Computer Science Problems in Python to try to catch myself up on some of the things I missed by ...
4
votes
1
answer
109
views
Count Words in Quotes Fetched from Website
I have solved the following exercise and would like to get some feedback on my implementation.
Create a function that uses futures to parallelize the task of downloading random quotes from https://...
4
votes
2
answers
283
views
Clojure performance for solving Project Euler 72 (counting proper reduced fractions)
Challenge
This is a solution of Project Euler 72 in Java.
How may proper reduced fractions \$\dfrac{n}{d}\$ are there, where \$n
< d \le 10^6\$?
Code
...
4
votes
2
answers
961
views
Dijkstra's algorithm in Clojure
I'm learning Clojure and I'm interested in areas that could be more idiomatic. The main function is below. If you're interested in the whole lib, check out this.
The function operates on a ...
5
votes
2
answers
317
views
RSS feed viewer in Clojure
This semester a classmate and I visited a course on functional programming in our university. For grading, we've to submit a small project which should be written in Clojure and make use of functional ...
2
votes
1
answer
80
views
A program that expands a list of maps and chooses a random element
This is the essence of chapter 3 of "Clojure for the Brave and True".
This program is about completing the list asym-hobbit-body-parts by adding a given number of ...
4
votes
1
answer
100
views
Get list of new questions from Stack Overflow
I would like to write a little pet project using Clojure to study it, something like Stack Overflow client.
Here is a my first code to get list of new questions from site. I am in the very beginning ...
1
vote
2
answers
215
views
Combined looping and recursion when implementing Quicksort, using proper Clojure style
In "The Joy of Clojure", 2nd edition, code for quicksort is introduced on page 133 that I found hard to digest. I have rewritten it to make it clearer (at least to myself).
Here is the original:
<...
1
vote
2
answers
2k
views
Clojure code for finding prime numbers
This is my Clojure code for finding prime numbers.
Note: this is an advanced version which starts eliminating from i*i with step ...
2
votes
1
answer
72
views
Table of employee with end of mission visual clue
to learn Reagent, re-frame and spec I made a little personal project.
Description:
Given a ...
3
votes
1
answer
91
views
Langton's ant in Clojurescript
The weekly coding challenge in Eric Normand's newsletter this week involves implementing Langton's ant.
I wanted something on my screen so I put together a simple re-frame app. The core functions ...
2
votes
2
answers
335
views
Project Euler #49: Find 12-digit number concatenating a three terms sequence
First of all, project Euler has been a great help for me to learn Clojure. I tried for months trying to get web projects going but ended up frustrated with and struggling with tooling and libraries ...
4
votes
1
answer
99
views
n-puzzle in Clojurescript
I'm in the process of creating a n-puzzle solver in Clojurescript. I have the basic model up and running and can move tiles on the screen. I plan to implement A* or such an algorithm to solve a given ...
5
votes
2
answers
856
views
Parsing infix expressions in Clojure
I'm trying to teach myself Clojure by reading the Brave Clojure book online, and at the end of Chapter 7 there is an exercise to parse a mathematical expression written as a list in infix notation to ...
2
votes
1
answer
97
views
Picking a random point along the edge of an area
I'm writing a Diffusion-limited aggregation simulation, and need to pick a random point along the edge of an area defined by a dimension pair of [width, height]. ...
1
vote
1
answer
61
views
Using deftype to create a wrapper class for byte arrays
I want to create a wrapper class for byte arrays so that I can use them as keys in fastutil's Object2LongAVLTreeMap. I have ...
3
votes
2
answers
111
views
What does the Bob say? (clojure version)
I'm doing the exercices from clojureacademy.
Here are the instructions for this one.
Bob is a lackadaisical teenager. In conversation, his responses are very limited.
Returns "Whatever." if ...